我用VS2005编写的应用程序是一个32位软件。它在 Windows Server 2008、Windows 7(64 位)上运行良好,但在 Windows Server 2012 上无法运行。我试图找出缺少哪个 DLL,因为我从 LoadLibrary 收到错误“动态链接库 (DLL) 初始化例程失败” ”。给出错误的代码如下
m_plugin = LoadLibrary( pluginPath.c_str() );
if ( !m_plugin )
{
const string error( "Failed to load Library \"" + pluginPath + "\" " + GetLastErrorStdStr() );
CBLogger::log( error, HIGH_IMPORTANCE );
return false;
}
为了解决这个问题,我尝试安装 C++ 可再发行版本 8.0.61001,但没有帮助。
我什至查看了dependency walker(我对它真的很陌生),并且确实找到了一些以黄色显示的Windows dll(例如msvcr80.dll)。我将它们复制到我的应用程序文件夹中,但这也不起作用。
有人可以给我一些关于我应该如何解决这个问题的想法吗?我应该安装什么版本的可再发行组件或有关如何使用依赖项遍历器的一些提示。请帮忙
最佳答案
尝试检查 Windows 事件日志。它位于控制面板 -> 管理工具 -> 事件查看器 -> Windows 日志 -> 应用程序附近。通常您会在那里看到未找到的确切 DLL,其预期版本也应该匹配。
关于c++ - Windows Server 2012 中 DLL 无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26583503/