其实这个问题是个超级简单的事情,结果那天在我写的时候把地方写错了,结果折腾了一天。。。郁闷死。。。
其实我也不太明白为什么vc的dll不能直接引用进工程。。。所以只能想别的招加入工程了。
首先:
using System.Runtime.InteropServices;
引个命名空间;
然后在类里写://之前就是不知道自己怎么想的写在类外面了,折腾一天。。。
[DllImport("rfdll32.dll", EntryPoint = "rf_card", SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]//第一个参数可以加上路径指到dll文件。如果不写路径的话,那么就把dll文件放在bin/Debug下就可以了。第二个参数是dll中的方法名字,这的名字必须是dll中的方法名字。其他参事没研究。
public static extern int rf_card();//这的名字是可以改写的。写成什么都可以调到上面的rf_card方法的。
//-----------------------------------------------------------------------------------------------------------------
或者写成:
[DllImport("rfdll32.dll")]
public static extern int rf_card();//这的名字 就必须是真的名字
之后,就可以在想用的地方调用这个方法了,调的方法和一般的方法一样。