Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.19;
Скачать: CL | DM;

Вниз

помогите с конвертацией, пожалуйста.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
3-60962
juster
2002-08-28 18:58
2002.09.19
Навигация по набору данных


8-61218
Fredericco
2002-05-20 12:03
2002.09.19
Вопрос по распознаванию речи


1-61098
ga3
2002-09-09 04:06
2002.09.19
proxy: dead or alive?


1-61154
DDi
2002-09-07 05:12
2002.09.19
Работа с Датой и Временем


1-61136
Andy BitOff
2002-09-06 14:03
2002.09.19
Виртуальный Grid