LoadLibrary Problem
-
Ich programmiere ein ActiveX Control mit einer Viewer DLL. Ich habe ein Problem bei laden einer DLL.
m_hTVModule = LoadLibrary( L"tvdll.dll" );
Mit dem mitgelieferten Beispielcode funktioniert es einwandfrei. Ich habe auch die benötigten DLL in mein Debugverzeichnis kopiert, es geht aber dennoch nicht.
Woran könnte das liegen?
-
Wie ist denn der Fehlercode? Ist es auch wirklich so, dass er die Datei nicht findet?
-
Es gibt keinen Fehler, nur m_hTVModule ist nach dem Aufruf Null.
-
thmsfrst schrieb:
Es gibt keinen Fehler, nur m_hTVModule ist nach dem Aufruf Null.
Schaue MSDN:
"If the function fails, the return value is NULL. To get extended error information, call GetLastError.Also schau was dir GetLastError anzeigt.
-
Bei Rückgabe NULL musst du GetLastError ausführen. Dann gibt's auch 'nen Fehlercode.
EDIT: Bei Problemen mit einer Funktion solltest du grundsätzlich immer erstmal in der Hilfe nachsehen und alles durchlesen. Oft findet man direkt die Lösung oder zumindest einen Ansatz.
-
GetLastError liefert -> 126. Ich bin neu in C++ und kenne die Fehlercodes nicht. Was bedeutet der Fehler? Wo kann nich das nachschauen?
-
Geh mit dem Cursor auf GetLastError, drück F1, dann öffnet sich die Hilfe (wer hätte das gedacht )! In der Beschreibung zur Funktion findest du einen Link "System Error Codes". Den solltest du dir direkt als Lesezeichen speichern.
EDIT: Der Fehlertext zu 126 ist: "The specified module could not be found." Stimmt also.
EDIT2: Du kannst ja testhalber mal probieren, ob eine absolute Pfadangabe dich weiterbringt...
-
OK 126 bedeutet: The specified module could not be found. Was nun?
-
thmsfrst schrieb:
OK 126 bedeutet: The specified module could not be found. Was nun?
Tja, ich bin mir gar nicht sicher, ob die DLL im Projektverzeichnis oder im Debug-Unterordner liegen muss. Probier doch mal, die ins Projektverzeichnis zu verschieben. Ich hab immer alle DLLs in einem Verzeichnis, dass in der PATH-Umgebungsvariable steht, die werden sowieso immer gefunden...
-
Du kannst ja zum testen mal den Pfad absolut angeben.
Simon