【大事件】C#调用C++开发出的dll里面的接口.

接口是这样的:c++语言开发的dll文件里面的接口
问题是:我用C#语言怎样调用这个接口呀。(其实这个接口会调用,就是不知道这个接口里面的那个io_data参数怎么传值)

跪求大神解答。拜谢。

应用场景是用C#语言调用C++语言开发出来的.dll库。(也就是开发一个小软件与硬件控制板通讯)这个接口就是.dll里面的某一个。其他的接口开发好了。现在就卡在这个接口的传参这里。跪求大神解答。再次感谢!

3个回答

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

u013047803
凡夫俗子_ 谢谢了我是在别人的帮助下用了位移操作,解决了这个问题。
接近 3 年之前 回复

io_data就是一个char数据,然后各个位表示一个含义,你根据你的要求传递数据

u013047803
凡夫俗子_ 有时间的话能说下具体怎么传吗?或者给个传递数据的案例。谢谢了
接近 3 年之前 回复

unsigned char可以用byte类型,char *可以用StringBuilder类型
调用c++的dll,在C#中用extern编写声明,然后就可以调用了。
你的程序返回结果怎么没有,调用约定也没有,你可以假设返回值是IntPtr,而调用约定是StdCall,如果不是,换Cdecl试试看

具体参考:http://blog.csdn.net/u011981242/article/details/52622923

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问