Inline ASM - String Problem



  • Hallo zusammen, folgendes Problem:

    char h[1024] = "hallo";
    
    int WINAPI DllMain(...)
    {
    foo("hallo");
    foo(h);
    return true;
    }
    
    foo(LPSTR Str)
    {
    _asm
    {
    push 0
    push Str
    push Str
    push 0
    call MessageBoxA
    mov EAX, 1
    }
    }
    

    Antwort: Error 5, Access Violation
    Der Code wird ausgeführt, indem ich die DLL mittels LoadLibraryA lade.

    Win7, x64
    Visual Studio 2010

    Danke schonmal...



  • Es wäre spannend zu wissen WANN der Fehler auftritt. Gibt es davor eine der gewünschten Meldungsboxen? Falls ja, und der Fehler nach der ersten Meldungsbox auftritt hab ich ne Theorie.

    In foo() pusht du 4 Werte auf den Stack. Wenn dieses Inline-Assembler von Microsoft nicht ultraschlau ist, musst du die auch wieder runternehmen.


Anmelden zum Antworten