紧急求助,这样外部函数在PB中该如何申明和调用?
动态库abc.dll中函数ReadSoftwareVersion 和 TagIdentify,在PB中该如何申明和调用 ? 本人对PB中该如何定义数据类型糊涂,试一下午都没试成功。
函数在VC中用法参考代码如下
函数原型:int ReadSoftwareVersion(HANDLE comm,char *receive)
输入参数:
●——comm:串口句柄
●——*receive:接收软件版本的数组地址。其中receive[0]是软件主版本值,receive[1]是软件次版本值。
返回结果:调用成功返回1,否则返回-1。
调用例程:
int flag;
char receive_data[2];
flag = ReadSoftwareVersion(h_Com,receive_data);
if(flag==1)
{
CString string;
string.Format("Software Version is %d.%d",receive_data[0],receive_data[1]);
AfxMessageBox(string);
}
else
{
AfxMessageBox("Read Software Version Failed!");
}
函数原型:int TagIdentify(HANDLE comm,unsigned char *receive)
功能说明:单标签ID识别
输入参数:
●——comm:串口句柄
●——*receive:接收ID的数组地址
返回结果:调用成功返回1,否则返回-1。
调用例程:
int flag;
unsigned char receive[20];
flag=TagIdentify(h_Com,receive);
if(flag==1)
{
CString string;
string.Format("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",receive[0],receive[1],receive[2],receive[3],receive[4],receive[5],receive[6],receive[7],receive[8],receive[9],receive[10],receive[11]);
AfxMessageBox(string);
}
else
AfxMessageBox("Operation Error!");
[解决办法]
你是如何定义的?
[解决办法]
function int ReadSoftwareVersion(ulong comm, ref char receive[2])
int flagchar receive_data[2]flag = ReadSoftwareVersion(h_Com,receive_data);if flag = 1 then messagebox('', 'Software Version is ' + string(receive_data[1]) + '.' + string(receive_data[2]) + '')else messagebox('', 'Read Software Version Failed!')end if
[解决办法]
function int ReadSoftwareVersion(ulong comm, ref char receive[2]) library 'abc.dll'
[解决办法]
function int TagIdentify(ulong comm, ref char receive[20]) library 'abc.dll'
[解决办法]
function int ReadSoftwareVersion(ulong comm, ref int receive[2]) LIBRARY "abc.dll"
[解决办法]
你加我q:865359042,把dll发给我,我试试
[解决办法]