接口是这样的:
问题是:我用C#语言怎样调用这个接口呀。(其实这个接口会调用,就是不知道这个接口里面的那个io_data参数怎么传值)
跪求大神解答。拜谢。
应用场景是用C#语言调用C++语言开发出来的.dll库。(也就是开发一个小软件与硬件控制板通讯)这个接口就是.dll里面的某一个。其他的接口开发好了。现在就卡在这个接口的传参这里。跪求大神解答。再次感谢!
C# 中声明调用接口
[DllImport(@"XXXXXXX.dll", EntryPoint = "TCP102_WriteIO", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern void TCP102_WriteIO(byte sequence,byte time_out,byte io_data);
对应的io_data参数这样赋值即可
byte io_data = Convert.ToByte("00000011",2);
其中的"00000011",即以字符串形式显示的二进制,也就对应你说的对应io_data的 bit0,bit1 位上为1
io_data就是一个char数据,然后各个位表示一个含义,你根据你的要求传递数据
unsigned char可以用byte类型,char *可以用StringBuilder类型
调用c++的dll,在C#中用extern编写声明,然后就可以调用了。
你的程序返回结果怎么没有,调用约定也没有,你可以假设返回值是IntPtr,而调用约定是StdCall,如果不是,换Cdecl试试看
具体参考:http://blog.csdn.net/u011981242/article/details/52622923