C# 调用dll 异常 有些函数不能调用

[DllImport(@"C:\ProgramFiles(x86)\ABC\device.dll")]privatestaticexternuintopenDevice(... [DllImport(@"C:\Program Files (x86)\ABC\device.dll")]
private static extern uint openDevice(int Con_type, string Com_port, uint data_rate, int retrytimeout, int usbtimeout);
private static extern uint closeDevice(uint Handle);

上面是我调用一个指定地址的dll,是一个应用程序提供的,不知道是托管还是非托管的(怎么判断?)
声明第一个函数OpenDevice的那个语句没有问题,唯独closeDevice 这个有问题,异常信息如下?
An unhandled exception of type 'System.TypeLoadException' occurred in mscorlib.dll
Additional information: Could not load type 'ABC_Console.Form1' from assembly 'ABC Console, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' because the method 'closeDevice' has no implementation (no RVA).

可以知道device.dll中绝对包含有closeDevice 这个函数,为什么有些函数调用就没有问题,有些就有?
展开
 我来答
_idealy
2014-02-12 · TA获得超过481个赞
知道答主
回答量:57
采纳率:0%
帮助的人:36万
展开全部
[DllImport(@"C:\Program Files (x86)\ABC\device.dll")]
private static extern uint openDevice(int Con_type, string Com_port, uint data_rate, int retrytimeout, int usbtimeout);

[DllImport(@"C:\Program Files (x86)\ABC\device.dll")]
private static extern uint closeDevice(uint Handle);

好像应该是这样……
追问
就是这样的,问题解决了。
能否解释一下这个原因。如果有100个函数,要写100次DllImport?
追答
这个我没有试过,我之前用的时候都是每个函数跟着一个dllimport,按说应该有简写方法,有时间找一下,找到了再给你回答。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式