DLL Load Library – Código de error 126

Estoy usando la ‘LoadLibrary’ de la API de Windows, cuando ejecuto la aplicación, me arroja un código de error 126. Leí que puede ser causada por dependencias, revisé qué pasa con algunas aplicaciones como Dependency Walker, pero todo estuvo bien.

LoadLibrary en la aplicación:

HMODULE dll_mod = LoadLibrary(L"path_to_dll"); if(dll_mod==NULL){ std::stringstream error; error << "Could not load plugin located at:\n" << file_full.toStdString() << "\n" << "Error Code: " << GetLastError(); FreeLibrary(dll_mod); return error.str(); } 

Código de complemento:

 #include "stdafx.h" #define DLL_EXPORT #define PLUGIN_STREAM __declspec(dllexport) #include  #include  using std::vector; using std::string; // Init event (After the loading) extern "C"{ PLUGIN_STREAM int onInit(char* argv){ return 0; } PLUGIN_STREAM void pluginInfo(vector & info){ info.push_back("media_event=false"); info.push_back("status_event=false"); info.push_back("send_event=true"); info.push_back("plugin_name='RadioStream'"); info.push_back("description='This plugin was designed for that people that wants to listen to radio music.\nYou can register your radio and play it later, also we have a gallery of radios that you can check.\nThis plugin is original of Volt and it's originally implemented in the application.'"); info.push_back("success:0"); info.push_back("error:1=Could not open data file"); info.push_back("error:2=Could not prepare plugin"); info.push_back("alert:40=Could not connect to that radio"); } } 

El error 126 de DLL de Windows puede tener muchas causas principales. Los métodos más útiles que he encontrado para depurar esto son:

  1. Usa el andador de dependencias para buscar problemas obvios (que ya has hecho)
  2. Use la utilidad sysinternals Process Monitor http://technet.microsoft.com/en-us/sysinternals/bb896645 de Microsoft para rastrear todo el acceso a archivos mientras su dll intenta cargar. Con esta utilidad, verá todo lo que ese dll está tratando de incorporar y generalmente el problema se puede determinar a partir de allí.

Este error puede ocurrir debido a que falta una biblioteca MFC (por ejemplo, mfc120.dll) de la que depende la DLL en la carpeta windows / system32.