C# 调用非托管Dll

solshine 2011-09-07 10:03:22
做一个Asp.Net项目要用到一个 非托管的Dll和下位硬件通讯
新建一个类对dll中的方法稍微封装了下
类内容大致如下

public class XXX
{
[DllImport(@"F:\Code\WebSite2\xxx.dll", EntryPoint = "Fun", CharSet = CharSet.Unicode)]
public static extern int Fun(...);
}


然后调用的时候就

XXX.FUN(...);


类里面有个 连接 和 关闭连接 的方法,在调试过程中,当连接成功后,再连接的话就出现了“设备未连接的”的错误代码,调用 关闭连接 方法,似乎不起效果,当退出虚拟服务器后,再次连接成功了,但接着又出现了上面的错误代码……
这是什么原因,是不是调用的dll还要进行释放?
...全文
99 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
solshine 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]

看看自己的代码逻辑,是不是关闭后,你又去访问了呢
[/Quote]
不好意思,我上面错误理解了你的意思

初衷是想测试调用的方法是否成功,dll里面有三种连接的方法,USB, 串口,TCP/IP
当使用USB方法连接成功后,再关闭连接,然后再用USB或者其他方法打开连接,于是就出现了 错误提示……
solshine 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]

看看自己的代码逻辑,是不是关闭后,你又去访问了呢
[/Quote]

这么说来,使用关闭连接方法后,就不能再用 连接 方法了?
sdl2005lyx 2011-09-07
  • 打赏
  • 举报
回复
楼主,这个错误跟平台调用无关,平台调用常见报错:
1、找不到指定模块
2、找不到函数入口。
3、尝试写受保护内存

你的问题,估计跟自己的代码逻辑有关,按2楼的提示方法去试试。。。
bdmh 2011-09-07
  • 打赏
  • 举报
回复
看看自己的代码逻辑,是不是关闭后,你又去访问了呢
Avoid 2011-09-07
  • 打赏
  • 举报
回复
不需要,估计你忘记调用哪个方法了。
solshine 2011-09-07
  • 打赏
  • 举报
回复
哈哈,问题解决了,谢谢大家~

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧