Diter
Дата: 04.06.2006 12:22:36
Есть функция на Delphi
library XXX;
...
function fname(s:PChar):PChar;stdcall;
var
tmp:PChar;
begin
...
s:=tmp;// или StrLCopy(s,tmp,X)
...
Result:='OK';
end;
...
так вот,
при попытке вызова этой функции в Forms'е, он или вылетает, или возвращает в s совсем не то, что надо. При этом 'OK' возвращается исправно.
В Delphi и Visual Basic всё работает нормально.
Кудрявцев Леонид
Дата: 05.06.2006 09:42:09
Вообще, у меня изумление, как оно в VB работает нормально. Ты возврашаеш указатель на локальные данны в СТЕКЕ, после завершения ф-ции - данные в стеке уничтожаются и указатель становится некоректным. Т.ч. Forms вылетает вполне законно.
Я возвращал указатели на строки в _глобальных_ переменных из C - все нормально.