代码改变世界

PB调用DLL时,Byte类型的对应

2007-06-20 21:36  keebing  阅读(1795)  评论(6编辑  收藏  举报

最近一个项目需要调用硬件厂商提供的DLL来操作硬件,厂商提供的函数好多都需要byte类型的数组,这可犯了难,在我的印像中Byte类型好像在PB中没有对应的,让同事上网查了查也说没有,但我感觉PB中应当能有与之对应的类型。

在网上查找到了好多结果,有说char,blob,any等等。我到是认为byte类型是8位,这应当跟PB中的char类型一致。

函数原型

int kqjmodify(byte * msg,char *sip);

pb中声明为:Function int kqjmodify(char msg[],string sip) LIBRARY "kqj.dll"

测试代码如下:

char  lc_buf[4]

ls_buf[1] = char(192)
ls_buf[2] = char(168)
ls_buf[3] = char(0)
ls_buf[4] = char(119)

kqjmodify(ls_buf,"192.168.0.118");


测试成功,这里一定要用char()函数将数值转换为字符.