Проблема с Дельфийскими DLL (HELP!)

0 голосов
спросил 03 Фев, 02 от Гость (210,080 баллов) в категории Программные продукты Esri
I need a help!
Мне нужно прицепить DLL к АркВью. Написал на Delphi. Но вот беда - какая-то проблема с передачей параметров из/в функцию библиотеки. Беды следующие:
1) Никак не могу вернуть строку из функции DLL в ArcView: получается либо Segmentation violation, либо строка пуста, либо в ней тарабарщина.
2) Никак нельзя вернуть ЗНАЧЕНИЕ функции:
   выражение типа R = dlgproc1.Call({t}) приводит к падению ArcView.
В-общем, блины комом. Кто-нибудь, помогите, желательно кусочком дельфийского кода.

1 Ответ

0 голосов
ответил 04 Фев, 02 от Aleksey1 (1,420 баллов)
Попробуйте в объявлении функций DLL поставить директиву stdcall, отвечающую за порядок передачи параметров в процедуру. Пример из справки Delphi:

function MyFunction(X, Y: Real): Real; stdcall;

ArcView использует именно этот порядок следования параметров. У меня была подобная проблема. Подробно о Calling Conventions (директива stdcall и др.)читайте в справке по Delphi.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...