Привет всем!
Столкнулся со странной проблемой: при вызове функции, объявленной следующим образом:
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" в параметрах отрабатывают нормально.
В чем может быть проблема?