Problem mit DLL-Datei
-
Hallo,
ich habe eine DLL-Datei, wo sich eine Funktion befindet, die nichts weiter macht als eine MessageBox anzuzeigen. In der DllMain-Funktion wird einfach zudem auch eine MessageBox angezeigt, die komischerweise zweimal angezeigt wird, sobald man die DLL lädt. Warum ist das so? Hier der Code der DLL:
Header:
#ifndef _MAIN_H_ #define _MAIN_H_ #include <Windows.h> #ifdef BUILD_DLL #define DLL_EXPORT __declspec(dllexport) #else #define DLL_EXPORT __declspec(dllimport) #endif #ifdef __cplusplus extern "C" { #endif void DLL_EXPORT SomeFunction(); #ifdef __cplusplus } #endif #endif // __MAIN_H__Code-Datei:
#include <Windows.h> void SomeFunction() { MessageBox(0, L"SomeFunction Aufgerufen!", L"Information", 0); } BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { MessageBox(0, L"DLL-Datei wurde geladen", L"Information", 0); }Lade ich nun die DLL, erhalte ich einen Laufzeitfehler. Was habe ich falsch gemacht? Hier der Code aus der Anwendung(Konsole), die die DLL laden soll:
#include <iostream> #include <Windows.h> using namespace std; int main() { HMODULE hMod = LoadLibrary(L"Test.dll"); FARPROC pFunc = GetProcAddress(hMod, "SomeFunction"); (*pFunc)(); }Ich hoffe, ihr könnt mir weiterhelfen.
Dummkopf

-
Dummkopf schrieb:
Lade ich nun die DLL, erhalte ich einen Laufzeitfehler.
Es könnte helfen, diesen auch zu nennen...