Форум: "Система";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];
ВнизDLL Найти похожие ветки
← →
Гарик (2002-04-06 09:35) [0]Есть к примеру такая ф-я, определенная в дин. библиотеке так:
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), все становится нормально, но мне нужна именно такая директива.
← →
MBo (2002-04-06 09:44) [1]var x: function(a, b: PChar; i: Integer): PChar; stdcall;
здесь тоже надо
← →
Гарик (2002-04-06 10:11) [2]пробовал - в переданных параметрах мусор, а потом еще и ошмбка вылетает :((
← →
Гарик (2002-04-06 10:31) [3]заработало - не везде добавлял stdcall.
ф-я вызывалась через метод класса, а в самом методе забыл экспортнуть как stdcall.
спасибо.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c