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)