опять проблема с dll

0 голосов
спросил 18 Янв, 06 от Гость (210,080 баллов) в категории Программные продукты Esri
Итак. dll написана на delphi, в ней находится форма, на которой отображается результат небольшого запроса к mysql, и также в вызываемой из arcview функции читаем данные из ini файла.
вызываем:
x = 1
myDLL = DLL.Make("stat.dll".AsFileName)
add = DLLProc.Make(myDLL,"showF", #DLLPROC_TYPE_VOID,{#DLLPROC_TYPE_INT32 })
add.Call({x})

всё выполняется, Но после нескольких секунд ошибка, приблизительно такая "arcview.exe при обращению к памяти с адресом .... память не может быть read", а затем runtime error и всё закрывается.

arcview 3.2, и при тестировании библиотеки из своей проги всё нормально работает.

в dll функции описывал правильно:
procedure showF(id:integer); stdcall; export;

ИЗ-ЗА чего ????

3 Ответы

0 голосов
ответил 19 Янв, 06 от dindzilin (4,160 баллов)
Из моего собственного опыта следует, что любая проблема с dll кроется в самой dll. При любой маааленькой ошибке, получаются вот такие вот казусы, так что копай саму dll.
Кстати, смею предположить, если форма не модальна, то попробуй её сделать модальной, этот глюк я никак не смог обойти.
0 голосов
ответил 21 Янв, 06 от Гость (210,080 баллов)
проблема вродеб не в том что форма не модальная, хотя если так , то всякие шибки вылетают тотлько после того как эту самую форму закроешь! )
борюсь пока, безуспешно
0 голосов
ответил 23 Янв, 06 от dindzilin (4,160 баллов)
Есть ещё предложение, для формы, на OnClose повесь

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

Это все что можно сказать не влезая в суть проблемы, если не поможет - думаю дело в коде!
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...