我正在使用Visual C 2008 Express Edition来创建仅限资源的DLL . 我面临的问题是运行在除了我的另一台计算机上使用DLL的应用程序导致LoadLibrary()函数失败,错误代码为14001 .
在互联网上搜索似乎是运行缺少Microsoft Visual C 2008 Redistributable Package库的应用程序的计算机的依赖性问题 .
我的第一步是安装最新的Microsoft Visual C 2008 Redistributable Package,但这并没有解决问题 .
此外,我更改了我的项目设置,因此DLL编译静态CRT链接,假设这样我将摆脱依赖关系 .
这些选项似乎是其他人遇到相同问题的解决方法 . 任何想要看哪个方向的想法都受到高度赞赏 .
谢谢
================================================== ================================
谢谢你的回答 .
由于缺少VC Redistributable Package的调试版本库,因此Dependency Walker和事件查看器都指示了并排配置问题 .
我粗心大意,并在调试模式下编译了我的DLL,在发布模式下重新编译解决了这个问题 .
3 回答
查看事件查看器 . Windows SideBySide很可能会出现错误,说明缺少哪个程序集 .
可能它将是一个VC CRT运行时,你必须与你的DLL捆绑 .
(VC可再发行组件可在此处获取:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=29)
我有同样的问题,但使用Visual Studio 2013; DLL的调试集,需要清单 . 在我的情况下,必须将Microsoft.DTfW.DHL.manifest和dbghelp.dll添加到路径中(我使用了exe目录) .
尝试通过Dependency Walker隔离丢失的库:
http://www.dependencywalker.com/
只需使用此工具在第二台计算机上运行您的应用程序,它应该告诉您缺少哪个库 . 确保安装的是正确版本的Visual C 2008 Redistributable Package;有两个,对于VS 2008 SP1和没有任何SP ...