首页 > Web开发 > 详细

asp.net调用非托管dll,无法加载 DLL,找不到指定模块解决方法。【转】

时间:2019-09-20 14:10:50      阅读:92      评论:0      收藏:0      [点我收藏+]

最近开发一个项目,里面用到了非.net开发的一个dll文件接口,发现发布到window2003服务器上后,运行网站总是提示 “无法加载 DLL“D:\11\1.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。 ”这个错误。但是我在本地xp系统上调试是可以的。

dll使用com调用如下

[DllImport(@”D:\11\1.dll”, EntryPoint = “aaa”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern Boolean aaa(bool x);

提问地址:http://topic.csdn.net/u/20121031/17/2085fdf4-cf81-4cf9-8650-e02c1ed8d67d.html

解决方法:

步骤一:dll调用使用绝对路径,如DllImport(@”D:\11\1.dll”或者将调用dll文件放到system32目录下。

可参考http://blog.csdn.net/xsgreen/article/details/3647501

步骤二:使用depends.exe工具查看要调用的dll文件引用了哪些组件(其它dll文件),搜索服务器system32目录,对比dll引用的组件是否存在服务器system32目录中,如果不存在,将缺少的dll文件复制到要调用的dll文件相同目录中。经过对比,发现服务器system32目录下缺少了borlndmm.dll这个dll文件,复制borlndmm.dll到服务器D盘11文件夹下,问题解决。
技术分享图片

步骤三:如果上面还没解决,应该就是权限问题,选中要调用dll文件存放文件夹,鼠标右键-》安全-》添加aspnet帐号(ASP.NET Machine Account),勾选完全控制即可。

如果以上三步还不行,就不知道了。

源地址:http://www.cnblogs.com/slyzly/articles/2748940.html

asp.net调用非托管dll,无法加载 DLL,找不到指定模块解决方法。【转】

原文:https://www.cnblogs.com/mazhenyu/p/11556138.html

(1)
(1)
   
举报
评论 一句话评论(0
分享档案
最新文章
教程昨日排行
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!