Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DLL Load Library - Error Code 126

I'm using the 'LoadLibrary' from the Windows API, when I run the application, it throws me an error code 126. I read that it may be caused by dependencies, I checked what's wrong with some applications like Dependency Walker, but everything was fine.

LoadLibrary in the application:

            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();             } 

Plugin code:

#include "stdafx.h" #define DLL_EXPORT #define PLUGIN_STREAM __declspec(dllexport) #include <iostream> #include <vector> 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<string> & 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"); } } 
like image 261
Spamdark Avatar asked Jan 16 '13 15:01

Spamdark


People also ask

What is load library error 126?

This is a graphic card software error. An ATI graphics card is installed on the system that is using the "ATI Chrystal Control Center" application with the ATI graphic driver suite. This error might be due to a driver conflict between two graphic cards.

How do I fix error 126 on steam?

Go to the Local Files tab -> click on Verify Integrity of Game Files. Steam will start verifying all the files. If there is any file missing/corrupted, it will download them again. Right-click on the game -> select “Repair Library Files”.


1 Answers

Windows dll error 126 can have many root causes. The most useful methods I have found to debug this are:

  1. Use dependency walker to look for any obvious problems (which you have already done)
  2. Use the sysinternals utility Process Monitor https://docs.microsoft.com/en-us/sysinternals/downloads/procmon from Microsoft to trace all file access while your dll is trying to load. With this utility, you will see everything that that dll is trying to pull in and usually the problem can be determined from there.
like image 152
DanS Avatar answered Sep 25 '22 12:09

DanS