关于调用DLL文件的参数问题,十分火急 ( 积分: 100 )

  • 主题发起人 主题发起人 88jian
  • 开始时间 开始时间
8

88jian

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个DLL文件有如下的函数:
LONG CALLBACK ReceiveComm(UCHAR *buffer)
{
DWORD length;
char tmp_num[11];
char ret;

WLog("RecvComm : ********************/n", true);

if (com.Status() == DISCONNECTED)
{
WLog("RecvComm : [RETURN DISCONNECTED]/n", true);
return (DISCONNECTED);
}

if( rxbuf.Status() == DATA_AVAIL )
{
length = rxbuf.DataLength() - 3;

ret = rxbuf.Data(buffer, 2, length);

if( ret == TRUE)
{
/* WLog("After RecvComm Data->", true);
WLog((char *)buffer, false);
WLog("<-/n", false); */

rxbuf.ChangeStatus(IDLE);
rxbuf.Clear();

WLog("RecvComm : <- ", true);
WLog(" Len[", false);
sprintf(tmp_num,"%i",length);
WLog(tmp_num, false);
WLog("]/n", false);
return length;
}
else
{
WLog("Receive Data Error !", true);
return -1;
}
}
WLog("RecvComm : [RETURN 0]/n", true);
return 0;
}
我用DELPHI设置什么样类型的参数传给他
 
有一个DLL文件有如下的函数:
LONG CALLBACK ReceiveComm(UCHAR *buffer)
{
DWORD length;
char tmp_num[11];
char ret;

WLog("RecvComm : ********************/n", true);

if (com.Status() == DISCONNECTED)
{
WLog("RecvComm : [RETURN DISCONNECTED]/n", true);
return (DISCONNECTED);
}

if( rxbuf.Status() == DATA_AVAIL )
{
length = rxbuf.DataLength() - 3;

ret = rxbuf.Data(buffer, 2, length);

if( ret == TRUE)
{
/* WLog("After RecvComm Data->", true);
WLog((char *)buffer, false);
WLog("<-/n", false); */

rxbuf.ChangeStatus(IDLE);
rxbuf.Clear();

WLog("RecvComm : <- ", true);
WLog(" Len[", false);
sprintf(tmp_num,"%i",length);
WLog(tmp_num, false);
WLog("]/n", false);
return length;
}
else
{
WLog("Receive Data Error !", true);
return -1;
}
}
WLog("RecvComm : [RETURN 0]/n", true);
return 0;
}
我用DELPHI设置什么样类型的参数传给他
 
string类型
 
可能是UChar型指针吧,或许直接用Uchar型也可一试。
 
我也认为是PCHAR
 
我现在用了PCHAR行的不行,他的DLL是用VC++写的
 
后退
顶部