引用楼主 2sword 的回复:在C#中声明DLL如下: [DllImport("IDTDevice.dll",EntryPoint="RF_SendCmd")] public static extern int RF_SendCmd(byte nCom,int address,byte nCmd,Byte[]aBuf ,byte nDatelen,Byte[] pAck,byte nAckLen); 转成PB是什么样子的啊??? PB10以下 FUNCTION long RF_SendCmd(char nCom,long address,char nCmd,ref blob aBuf,char nDatelen,ref blob pAck,char nAckLen) LIBRARY "IDTDevice.dll" -------------------------------------------------------- 上面用ref blob,会比ref char []好,因为如果需要传输ASICC为0的字符,也传得了.一般做硬件接口的,都用blob,再在PB中转换. blob aBuf,pAck //调用前必须先申请好内存,当然这个接口具体看你硬件商的约定,但字面理解,一个是传进去的值,一个是硬件写进来的,所以要先申请。 aBuf = blob(space(256)) pAck = blob(space(256)) 256是因为,后面那个明显是告诉DLL,你事先有多少存.(除非它是故意干扰我们的),它最大是255,多一点没所谓. ------------------------ PB10+,CHAR的部份可以用BYTE,DLL那里要加ansi;//请楼下接,我这里没有PB,我不会盲打,怕记错了。
在C#中声明DLL如下: [DllImport("IDTDevice.dll",EntryPoint="RF_SendCmd")] public static extern int RF_SendCmd(byte nCom,int address,byte nCmd,Byte[]aBuf ,byte nDatelen,Byte[] pAck,byte nAckLen); 转成PB是什么样子的啊???
680
社区成员
4,762
社区内容
加载中
试试用AI创作助手写篇文章吧