现在外部的动态库导出函数的方法未知(可能是COM,可能是普通的函数导出方式),是VC生成的还是C++Builder生成的也未知,只能肯定这些库不是.NET编译的,而且可能有一部分Windows的底层操作.由于从没用过C#,所以想问一下,在C#中调用这种动态库是否可行,是否有什么隐患?
另外,如果可以用.NET调用的话,用那个版本的.NET会更好一些(1.1? 2.0?还是更高的版本?),最好能简单的说明一下原因.谢谢
另外,如果可以用.NET调用的话,用那个版本的.NET会更好一些(1.1? 2.0?还是更高的版本?),最好能简单的说明一下原因.谢谢
//这是用到DllImport时候要引入的包
using System.Runtime.InteropServices;public class InvokeDll {[DllImport("外部生成的DLL.dll", CharSet=CharSet.Auto)]//声明外部的标准动态库的函数, 跟Win32API是一样的.
static extern int add(int a,int b);public static void Main() { //使用外部的标准动态库的函数
Console.WriteLine(add(10,30)); }}
可能比较麻烦点是类型转换和函数在C#中的声明建议用VC++.NET建一个包容类dll,然后C#就可以很自然地使用这个VC.NET的包容dll了
1。符合dll规范
2。注意类型转换
3。基本语法 [DllImport("system32.dll"]