Мое приложение, написанное на VS2005, представляет собой 32-битное программное обеспечение. Он отлично работает на Windows Server 2008, Windows 7 (64-разрядный), но не запускается на сервере Windows 2012. Я попытался выяснить, какая DLL отсутствует, потому что я получаю сообщение об ошибке из LoadLibrary. Ошибка инициализации подпрограммы динамической библиотеки ссылок (DLL) ». Дает код ошибка как приDLL не загружается на сервер Windows 2012
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, но это не помогло.
Я даже посмотрел на ходу зависимости (я действительно новичок в этом) и нашел несколько DLL-окон (например, msvcr80.dll), которые были показаны желтым цветом. Я скопировал их в папку приложения, но это тоже не сработало.
Может кто-нибудь, пожалуйста, дайте какие-либо идеи относительно того, как мне это разрешить? Какую версию распространяемого я должен установить или какие-то советы о том, как использовать ходул зависимостей. Пожалуйста, помогите
Эта ошибка делает * не * намекает на недостающую DLL в качестве причины. Одна из DLL, используемых вашей программой, имеет точку доступа DllMain(), которая возвращает FALSE. В вашем вопросе нет сухарь, который подсказывает, почему это может быть так, вам нужен отладчик. –
Я редактировал свой вопрос с кодом. Ошибка указана в LoadLibrary, и я возвращаю false. У dll определенно существует - я проверил это. – user2837961
Ну, тогда вы должны сузить, какая DLL является нарушителем спокойствия. Тот, который вы загружаете, является первым кандидатом, это может быть DLL, которую он использует. Если у вас нет источника, обратитесь за помощью к программисту. –