Borland Delphi -> Borland C++Builder 6
Переводом из Delphi в CBuilder занимался давно, но уже долго мучаюсь по переводу в некоторых местах кода, а в инете ваще нет никакой информации такого рода.Поэтому хотел обратиться к тому, кто работал с Delphi и в Билдере. Не получается никак перевести некоторый код:
1.
Код:
read(char *,int);
2.
Код:
TStream(dWil);
3.
Код:
function EditStreamInCallback(dwCookie:Longint;pbBuff:PByte;cb:Longint;var pcb: Longint):DWORD;stdcall;
Эту вещь пробовал перевести так:
Код:
__stdcall EditStreamInCallBack(Longint dwCookie, Byte pbBuff,int cb,int pcb)
Есть longint и char
точнее есть long. И в этом случае кстати речь идет о char* - т.е. указатель на массив
Проверить сейчас не могу, но вроде
TStream(dWil); = PStream(@dWil)^ -> *(TStream*)(&dWil)
первое я перевёл, как:
Цитата:
TStream *p;
p->Read(char*,int);
p->Read(char*,int);
Второе - спасибо Somebody:
Цитата:
(TStream*)(&dWil)
А вот третье до сих пор мучаюсь...
Вот так попробывал:
Цитата:
__stdcall EditStreamInCallBack(unsigned long dwCookie,unsigned char* pbBuff,long cb,long pcb)
Всё равно не так....
Код:
function EditStreamInCallback(dwCookie:Longint;pbBuff:PByte;cb:Longint;var pcb: Longint):DWORD;stdcall;
У тебя же написано, что функция возвращает значение DWORD, следовательно что-то такое должно быть:
Код:
DWORD __stdcall EditStreamInCallback(__int64 dwCookie, char *pbBuff, __int64 cb, __int64 pcb);
PS: Я бы перевел это так...
unsigned long (__stdcall *)(unsigned long,unsigned char *,long,long *)
Поэтому, правильно ли будет так:
DWORD __stdcall EditStreamInCallBack(unsigned long dwCookie,unsigned char* pbBuff,long cb,long *pcb)
??