C#调用C++的DLL,出现错误(System.DllNotFoundException 无法加载 DLL)

caneyzhang 2006-09-24 11:25:27
由于需要调用ras的拨号函数,所以使用C++创建了一个动态链接库,用来创建拨号连接和modem检测.
VS2005 C#创建的项目在本机上运行正常,打包移植到别的机器上后,总是提示System.DllNotFoundException 无法加载 DLL的错误(除了安装了VS2005的机器不会出错).

由于该dll文件引用了rasapi32.lib,所以打包时也引入了该文件,但无论放置与windows.system32目录或是本目录都,都仍旧会出现这个错误.
在函数引用时使用了该dll的绝对路径,但还是同样的错误.函数的声明方式如下
1.
[DllImport("D:\\Caney\\C#\\CreateConnect\\bin\\Debug\\RasEntry.dll")]
public static extern bool EnumModem([In, Out] IntPtr[] strDevArray);

2.
[DllImport("RasEntry.dll")]
public static extern bool EnumModem([In, Out] IntPtr[] strDevArray);

实在不明白是什么原因导致,请大侠指点!
...全文
1081 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhiming99 2006-09-25
  • 打赏
  • 举报
回复
1.为什么不直接引用WINDOWS的RASAPI32.DLL?
2.文件放的位置没错,应该是发布时丢了东西。
caneyzhang 2006-09-25
  • 打赏
  • 举报
回复
因为是C#调用,RAS中的很多数据类型很难匹配,所以使用C++做了一个dll方便C#调用
caneyzhang 2006-09-25
  • 打赏
  • 举报
回复
RasEntry.dll中就关联了这个静态链接库rasapi32.lib,我打包时也引用了这个文件。
Knight94 2006-09-25
  • 打赏
  • 举报
回复
看看RasEntry.dll是否关联其他的dll。

110,526

社区成员

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

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

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