c++转delphi

本文详细介绍了如何从C++转换到Delphi,包括回调函数的实现、Union转换、指针类型的转换、字符串和数组操作,以及在Delphi中处理C++结构和函数的方法。此外,还涉及到错误处理、数据类型映射以及DLL调用等关键点。
摘要由CSDN通过智能技术生成

1.回调函数使用方法
type  tfRealDataCallBack=procedure ( lRealHandle:longint;  dwDataType:DWORD; pBuffer:pBYTE; dwBufSize:DWORD; dwUser:DWORD);stdcall;
function NET_DVR_SetRealDataCallBack( lRealHandle:longint; fRealDataCallBack:tfRealDataCallBack; dwUser:longint): BOOL; stdcall;external CoinDllFile;

 

procedure   myRealDataCallBack(lRealHandle:Longint; dwDataType:DWORD;pBuffer:PByte;dwBufSize,dwUser:DWORD); stdcall;

procedure   myRealDataCallBack(lRealHandle:Longint; dwDataType:DWORD;pBuffer:PByte;dwBufSize,dwUser:DWORD); stdcall;
begin
//showmessage(inttostr(lRealHandle)+inttostr(dwUser)+inttostr(dwDataType)+inttostr(dwBufSize));
end;


boolreturn:=NET_DVR_SetRealDataCallBack(m_iPlayhandle, myRealDataCallBack ,m_iPlayhandle);

2.c++中union转换delphi
union
{
  char a;
  char b; 
} mychar;

type mychar=record
  case i of
  0:a:char;
  1:b:char;
end;


3.c++ char * 转换成pchar;其他类型指针都转换为pointer,指向指针的指针:ppointer
c++中DDX_TEXT(m_PDX,IDC_EDIT1,m_EDITINT);将控件与变量相连
c++中memset(&netcfg,0,sizeof(netcfg));
将已开辟内存空间的&netcfg的首sizeof(netcfg)个字节值设置为0,内存空间初始化
memcpy:内存拷贝
strcpy:字符串拷贝
转换为delphi:
fillmemory(pvoid destination,dword length,byte fill);
copymemory(pvoid destination,const void * source,dword length);
c++ sprintf(nultiipaddress,"%s",ipinfo.m_csmultiip);
delphi multiipaddress:=format('%s',[info.m_csmultiip]);
c++:getfileattributes delphi:DirectoryExists判断路径是否存在
createdirectory ->createdir创建目录

4.ip转整数,inttostr(inet_addr('192.168.1.203'))不过此结果与c++中结果不同,因为c++的
字节顺序与delphi的字节顺序不同,DELPHI :CB 01 A8 C0即203 1 168 192转换为十进制为3405883584
c++ :c0 a8 01 cb 为十六进制转换为十进制为3232235979
可以调序重排:并将16进制的字符串转换为10进制iplong:=strtoint('$'+s4+s3+s2+s1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值