加载C#调用DLL失败!

HellMoxi 2010-07-26 11:37:01
问题是。我在本机开发一个调用DLL程序的FORM程序。
下面代码引用的路径都可以指向成功! 但是在将该程序给其它机器使用的时候就提示加载DLL失败!
其它机器的该路径下也有dddd.dll这个动态链接库。 但是总是提示加载失败! 该如何解决啊??
[DllImport(@"C:\WINDOWS\system32\dddd.dll")]

这是VS2008运行的错误提示!
错误提示:无法加载 DLL“C:\windows\system32\dddd.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

这是EXE运行的错误提示的详细信息!

************** 异常文本 **************
System.DllNotFoundException: 无法加载 DLL“C:\winnt\system32\dddd.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
在 WindowsFormsApplication5.Form1.efport(Int32 port)
在 WindowsFormsApplication5.Form1.ef_add() 位置 E:\WindowsFormsApplication5\WindowsFormsApplication5\Form1.cs:行号 55
在 WindowsFormsApplication5.Form1.button1_Click(Object sender, EventArgs e) 位置 E:\WindowsFormsApplication5\WindowsFormsApplication5\Form1.cs:行号 352
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
...全文
1096 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
海阔任鱼跃 2013-04-07
  • 打赏
  • 举报
回复
怎么解决的啊?我的DLL中加载了其他的lib,用C#调用无法加载DLL
maoj0109 2012-07-05
  • 打赏
  • 举报
回复
我也遇到了同样的问题,建议大家以后解决问题后把解决方法贴出来啊,方便自己,方便他人
songcaizi2009 2012-05-30
  • 打赏
  • 举报
回复
请问你是怎么解决的?
HellMoxi 2010-07-29
  • 打赏
  • 举报
回复
问题解决了.
jshi123 2010-07-26
  • 打赏
  • 举报
回复
用dumpbin /imports dddd.dll 看下它的依赖项
(要在visual studio tools程序组的command prompt中运行dumpbin)
jshi123 2010-07-26
  • 打赏
  • 举报
回复
你的dll中还用了什么其它动态连接库吗?比如mfc?
jshi123 2010-07-26
  • 打赏
  • 举报
回复
试下在其它机器上执行
regsvr32 C:\WINDOWS\system32\dddd.dll
鸭梨山大帝 2010-07-26
  • 打赏
  • 举报
回复
可导出的非托管DLL,是不需要装.NET Framework的.

"只有装了VS2008才好使。直接装FRAMWORK的就不行!"
这个原因可能是你未安装了对应的.NET Framework,比如VS2008 默认是 .NET framework 3.5 , 打SP1补丁后,是.NET Framework 3.5 sp1.还不包含后续可能安装的扩展dll.
Mars.xj 2010-07-26
  • 打赏
  • 举报
回复
这么奇怪?
HellMoxi 2010-07-26
  • 打赏
  • 举报
回复
WINDOWS标准的DLL。 自己写的。 1楼2楼的方法都试过了,都不行! 只有装了VS2008才好使。直接装FRAMWORK的就不行!
鸭梨山大帝 2010-07-26
  • 打赏
  • 举报
回复
"dddd.dll这个动态链接库"
什么类型的dll?
wuyq11 2010-07-26
  • 打赏
  • 举报
回复
dll拷贝到路径
[DllImport
把它放到系统system32目录下试试。
iyori 2010-07-26
  • 打赏
  • 举报
回复
这种方式加载的话需要编写函数的静态入口点

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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