Форум: "Основная";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];
Внизпомогите с конвертацией, пожалуйста. Найти похожие ветки
← →
Starkom (2002-09-09 16:02) [0]есть такой код на дельфи 5:
var libHnd, i:integer;
proc:proctype;
p:APars;
begin
libHnd := LoadLibrary("lala.dll");
proc := procType(GetProcAddress (libHnd, PChar("InitLala")));
GetMem(p,10*sizeof(Pointer));
for i:=0 to 9 do
begin
GetMem(p^[i],10);
StrPCopy(p^[i],IntToStr(i));
end;
proc(p);
end;
переписал его под билдер:
HINSTANCE libHnd = LoadLibrary("lala.dll");
procType proc = procType(GetProcAddress (libHnd, PChar("InitLala")));
void** p = new void* [10];
for (int i = 0; i < 10 ; i++)
{
p[i] = new char* [10];
strcpy((char*)p[i],IntToStr(i).c_str());
}
proc(p);
Код на билдере валится при вызове proc(). Я чего-то не понимаю. Подскажите, чего?
← →
MBo (2002-09-09 16:06) [1]stdcall или другой модификатор указан правильно?
← →
Alx2 (2002-09-09 16:08) [2]if proc<>nil - проверка.
Также проверить соглашение о вызовах (спецификатор stdcall, например)
← →
Starkom (2002-09-09 16:09) [3]функция InitLala отписана на дельфи 5:
function InitDebug(pars:Apars):pchar;cdecl;
кстати,
params = array[0..10]of pointer;
Apars = ^params;
← →
Starkom (2002-09-09 16:09) [4]так еще:
typedef PChar __fastcall(*procType)(void** par);
← →
Alx2 (2002-09-09 16:12) [5]> __fastcall
Вот-вот :)) а надо, получается cdecl. Или вместо cdecl __fastcall
← →
Starkom (2002-09-09 16:16) [6]ужассссс
2 Alx2: great 10x!!! А я все в коде ошибку искал. Мда, конец рабочего дня...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c