最近一个项目需要调用硬件厂商提供的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()函数将数值转换为字符.
在网上查找到了好多结果,有说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()函数将数值转换为字符.