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