DLL Laden LoadLibrary()

09/20/2009 12:20 ^darkwing#1
Hi hab ein Problem und zwar wenn ich eine DLL lade mir die MessageBox in der DLL nicht angezeigt wird. Hab schon vieles Probiert aber es klappt einfach nicht.
Hier der Code der die DLL lädt:

Code:
#include <iostream>
#include <windows.h>

int main()
{
    HMODULE lib = LoadLibrary("D:\\test.dll");
    cout << lib;     //0x6a080000
}
Der DLL Code sieht so aus:

Code:
#include <windows.h>

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    switch (fdwReason)
    {
        case DLL_PROCESS_ATTACH:
            // attach to process
            // return FALSE to fail DLL load
            MessageBox(0, "blabla", "DLL Message", MB_OK | MB_ICONINFORMATION);
            break;

        case DLL_PROCESS_DETACH:
            // detach from process
            break;

        case DLL_THREAD_ATTACH:
            // attach to thread
            break;

        case DLL_THREAD_DETACH:
            // detach from thread
            break;
    }
    return TRUE; // succesful
}
Mir wird die MessageBox nicht angezeigt wenn die DLL geladen wird. Bitte um Hilfe.
09/20/2009 20:29 schlurmann#2
Debugger.
09/22/2009 22:10 ^darkwing#3
Hat sich erledigt. Es lag/liegt am Compiler (GCC). Stichwort "Name mangling". Einfach ein extern "C" vor der DLLMain schreiben...

Btw. Im Debugger wurde die DLL bei den geladen DLLs angezeigt, aber dennoch kam keine MassageBox.
Naja, Problem hat sich nun geklärt :]