Главная страница
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.021 c
4-61344
OlegG
2002-07-26 16:59
2002.09.19
Как узнать частоту работы процессора


1-61182
^Sanya
2002-09-07 14:21
2002.09.19
Sets в файл...


4-61352
Squ
2002-07-29 11:59
2002.09.19
ShellApi


1-61053
Mazenrat
2002-09-08 20:13
2002.09.19
Нужен АЙПишный аналог.


1-61190
Студент
2002-09-08 08:27
2002.09.19
Работа с компонентом без помещения его на форму