Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DLL [D5, Win95/98, WinME, NT4]


Гарик ©   (2002-04-06 09:35:00) 

Есть к примеру такая ф-я, определенная в дин. библиотеке так:
function A(a, b: PChar; i: Integer): PChar; stdcall;

Как мне ее динамически подгрузить в свою программу?
Вот такой код не работает:


...
var x: function(a, b: PChar; i: Integer): PChar;
hDLL: THandle;
y: PChar;
...
hDLL := LoadLibrary(_имя библиотеки_);
@x := GetProcAddress(hDLL, "A");
y := x("Test1", "Test2", 10);
...

Когда дебажу DLL, вижу что корректно передается толлько первый параметр, в других либо мусор, либо значение неопределено.
Проблема возникает только в случае подпрограмм, требующим несколько параметров.

Если убрать stdcall в директивах экспорта (по умолчанию Delphi тогда экспортирует как register), все становится нормально, но мне нужна именно такая директива.


Гарик   (2002-04-06 10:31:00) [1]

заработало - не везде добавлял stdcall.
ф-я вызывалась через метод класса, а в самом методе забыл экспортнуть как stdcall.
спасибо.


Гарик   (2002-04-06 10:11:00) [2]

пробовал - в переданных параметрах мусор, а потом еще и ошмбка вылетает :((


MBo   (2002-04-06 09:44:00) [3]

var x: function(a, b: PChar; i: Integer): PChar; stdcall;
здесь тоже надо


Наверх

Титульная страница Поиск, карта сайта Написать письмо