谁帮我看一下VC++转成delphi代码,哪里写的不对呀

cp1982 2007-12-22 07:11:29
VC++代码如下:
typedef struct{
BYTE m_bRemoteChannel;
BYTE m_bSendMode;
BYTE m_bRight;
char *m_sIPAddress;
char *m_sUserName;
char *m_sUserPassword;
BOOL m_bUserCheck;
DISPLAY_PARA displaypara;
}CLIENT_CARDINFO, *PCLIENT_CARDINFO;

CPLAYER_API LONG __stdcall MP4_ClientStart_Card(PCLIENT_CARDINFO pClientinfo,long nChannelNum,void(CALLBACK *ReadDataCallBack)(DWORD nPort,UCHAR *pPacketBuffer,DWORD nPacketSize));

void CClientdemoDlg::OnButton1()
{
CLIENT_CARDINFO aa5;
.
.
MP4_ClientStart_Card(&aa5,0,NULL);
.
.
}

VC调用成功的,我写成delphi后调用不成功,大家帮我看看哪里有问题
TCLIENT_CARDINFO=record
m_bRemoteChannel:byte;
m_bSendMode:TConnectMode;
m_bRight:byte;
m_sIPAddress:pchar;
m_sUserName:pchar;
m_sUserPassword:pchar;
m_bUserCheck:boolean;
displaypara:tDISPLAY_PARA;
end;
PCLIENT_CARDINFO=^TCLIENT_CARDINFO;

function MP4_ClientStart_Card(pclientinfo:pclient_cardinfo;nChannelNum:longint;ReadDataCallBack:TReadDataCallBack):longint;stdcall;//这里有问题
begin
Result:=-1;
if Init_HikNet<>1 then
exit;
if not Assigned(VMP4_ClientStart_Card) then
@VMP4_ClientStart_Card:=GetProcAddress(HIKDecodeDLL,'MP4_ClientStart_Card');
if @VMP4_ClientStart_Card<>nil then
Result:=VMP4_ClientStart_Card(pClientinfo,nChannelNum,ReadDataCallBack);
end;

调用不成功的
procedure TForm1.Button1Click(Sender: TObject);
var
aa5:tclient_cardinfo;
begin
.
.
MP4_ClientStart_Card(@aa5,1,null);
.
.
end;
出错信息为
[Error] Unit1.pas(76): Incompatible types: 'Calling conventions differ'
大家帮我看看是什么原因啊,求求高手指点一二了

...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
edongxu 2007-12-22
  • 打赏
  • 举报
回复
MP4_ClientStart_Card(PCLIENT_CARDINFO(@aa5),1,nil);
cp1982 2007-12-22
  • 打赏
  • 举报
回复
我自己顶一下

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧