Проблема с вызовом функций из Delphi DLL
От: aset  
Дата: 13.11.06 12:22
Оценка:
Привет всем!

Столкнулся со странной проблемой: при вызове функции, объявленной следующим образом:
function SomeFunction(var Buffer: array of byte): LongBool; stdcall;


методом, описанным ниже:
typedef BOOL __stdcall FNSOMEFUNCTION(OUT PVOID Buffer);
HMODULE hLib = LoadLibrary("somelib.dll");
FNSOMEFUNCTION* pfSF = (FNSOMEFUNCTION*) GetProcAddress(hLib, "SomeFunction");
char* pBuf = (char*)calloc(2, 30);
pfSF(pBuf);


по выходе из функции портится стек (esp больше нужного на 4).

Что интересно, функции, не имеющие конструкции "var ...: array of byte" в параметрах отрабатывают нормально.

В чем может быть проблема?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.