C#使用API,以及调用托管动态库,非托管动态库 那位高手详解下!十分感谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 调用托管的平台的dll,在项目中添加引用就可以了。调用非托管平台的dll,用DllImport。 托管动态库:静态调用:添加引用,然后就可以像正常库一样使用了动态调用:System.Reflection.Assembly ass=System.Reflection.Aassembly.LoadFrom(dllName);Type t=ass.GetType(typeName);System.Reflection.MethodInfo mi=t.GetMethod(methodName);mi.Invoke(...)非托管动态库:静态调用:[System.Runtime.InteropServices.DllImport("name")]static extern returnType methodName(...); //static extern 是必须的动态调用:首先要定义一个跟要调用的函数匹配的委托:delegate void Del();//我随便举了一个,一定要匹配然后要声明两个API:[System.Runtime.InteropServices.DllImport("kernel32")]static extern IntPtr LoadLibraryA(string dllName);[System.Runtime.InteropServices.DllImport("kernel32")]static extern Del GetProcAddress(IntPtr hMod,string methodName);直接要GetProcAddress的返回值设成定义的委托即可,然后就可以调用了,举例如下:Del method=GetProcAddress(LoadLibraryA("dllname"),"methodname");method(); 初学者问vs2005怎么打包 有密码如何读取QQ的聊天记录? comboBox1中选择数据输入,比如1.23,如何让1.23在textBox1中显示 web控件问题,急呀.大家帮个忙吧.谢谢了. 关于c#的winform程序和slq数据库的问题 如何用程序最快地知道select后面的各个参数(列)的数据类型??? 请问可以在remoting 中客户端调用服务端方法时,传一个对象数组到服务端的方法里啊?怎么解决?谢谢!!! C#如何实现把dataGrid里的数据打印 SA登陆失败啊? 没分了帮忙看看. 微软推荐,安全可靠,值得信赖,免费空间:30M 文件上传 C#自定义控件中如何事件冒泡
调用非托管平台的dll,用DllImport。
静态调用:
添加引用,然后就可以像正常库一样使用了
动态调用:
System.Reflection.Assembly ass=System.Reflection.Aassembly.LoadFrom(dllName);
Type t=ass.GetType(typeName);
System.Reflection.MethodInfo mi=t.GetMethod(methodName);
mi.Invoke(...)非托管动态库:
静态调用:
[System.Runtime.InteropServices.DllImport("name")]
static extern returnType methodName(...); //static extern 是必须的
动态调用:
首先要定义一个跟要调用的函数匹配的委托:
delegate void Del();//我随便举了一个,一定要匹配
然后要声明两个API:
[System.Runtime.InteropServices.DllImport("kernel32")]
static extern IntPtr LoadLibraryA(string dllName);
[System.Runtime.InteropServices.DllImport("kernel32")]
static extern Del GetProcAddress(IntPtr hMod,string methodName);
直接要GetProcAddress的返回值设成定义的委托即可,然后就可以调用了,举例如下:
Del method=GetProcAddress(LoadLibraryA("dllname"),"methodname");
method();