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...


Anmelden zum Antworten