|
|
|
WEBUTIL_C_API / Forms10
|
|||
|---|---|---|---|
|
#18+
Основная задача связана с выводом в Excel (это получилось), но, судя по всему, при задании формата ячейки он использует установки ОС и их нужно как-то получить. Пытаюсь воспользоваться пакетом WEBUTIL_C_API для вызова KERNEL32.GetLocaleInfoA. В результате падает java-ашина. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. Приведенный код также содержит попытку вызова MessageBox, который появляется на экране, но после его закрытия java-машина падает. Что в приведенном коде неправильно? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 16:10 |
|
||
|
WEBUTIL_C_API / Forms10
|
|||
|---|---|---|---|
|
#18+
Возможно, вопрос решился. Для функций, использующих WINAPI-соглашение о вызовах, нужно писать cdecl-обертку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 22:50 |
|
||
|
WEBUTIL_C_API / Forms10
|
|||
|---|---|---|---|
|
#18+
Действительно так ((( Note 285331.1 JVM Crash / Exception When Calling PASCAL style Function Via WebUTIL_C_API in Forms [ID 285331.1] Modified 19-JAN-2010 Type PROBLEM Status PUBLISHED Applies to: Oracle Forms - Version: 9.0 to 11.1 - Release: to 11.1 Information in this document applies to any platform. Checked for relevance on 12-JAN-2010. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2010, 13:20 |
|
||
|
WEBUTIL_C_API / Forms10
|
|||
|---|---|---|---|
|
#18+
И в связи c этим всплыл вопрос о том, как это же реализовано в ORA_FFI. Там есть есть возможность задать вид вызова (PASCAL_STD - C_STD), но по крайней мере файловый в/в из kernel32 почему-то работал независимо от этой установки и, судя по всему, PASCAL_STD - это на самом деле не pascal call, а stdcall (WINAPI) см. http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%B3%D0%BB%D0%B0%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2010, 22:36 |
|
||
|
WEBUTIL_C_API / Forms10
|
|||
|---|---|---|---|
|
#18+
* И в связи c этим всплыл вопрос о том, как это же реализовано в ORA_FFI. ... Давно я на ORA_FFI ничего не писал. Но думаю, просто _хорошая_ реализация чистки стека. IMHO C от PASCAL отличается: порядком передачи параметров, кто чистит стек (в С - вызывающий, в PASCAL - тот, кого вызывают). STDCALL - С-порядок, но очистка стека в вызываемой программе. От того, что стек почистят два раза - при "хорошем" алгоритме почистке, ничего плохого может и не случится. Типа: MOV <куда-то>, SP PUSH <параметр> ... PUSH <параметр> CALL <процедура> MOV SP, <от куда-то> Если же PUSH...PUSH CALL POP...POP - то понятно, что почистив стек лишний раз (и в вызванной процедуре и в вызываемой) мы убиваем SP и соответственно процесс/поток. Но это лично мое IMHO. Могу ошибаться. Доступа к исходным текстам не имею, дизасемблирования не проводил. Да и не интересно. Хотя, Subj ОЧЕНЬ печально. Ценность WEBUTIL_C_API падает до нуля - с учетом того, что если и делать свою DLL, то ее еще как-то нужно доставить до клиентского компьютера. ТЕОРЕТИЧЕСКИМ ВОПРОС, к тем, кто с WEBUTIL_C_API работал: Forms 9/10/11 предоставляет средства _доставки_ самописных DLL до клиента. Вызов - понятно WebUtils, а как DLL на клиента передавать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2010, 14:07 |
|
||
|
WEBUTIL_C_API / Forms10
|
|||
|---|---|---|---|
|
#18+
webutil позволяет автоматически загрузить dll на клиентскую машину. dll помещаются в каталог forms/webutil, в webutil.cfg они должны быть перечислены: #install.syslib.0.user.1=testwebutil.dll|204872|1.0|true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2010, 22:07 |
|
||
|
|

start [/forum/topic.php?fid=51&msg=36924296&tid=1878861]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 33ms |
| total: | 300ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...