Hi
im Rahmen eines Win32 Konsole Programms kommt eine Inline-Assembler Routine vor, innerhalb derer ich allerdings wiederum auf eine C++ Library Routine (hier: fwrite) zugreifen will. Um die Parameter auf den Stack zu geben (wie in der MSDN beschrieben), hab ich folgendes codiert:
Sieht unproblematisch aus, alle Variablen sind korrekt in main deklariert, leider wird der Fehler "error C2415: improper operand type" gemeldet, und zwar für jeden mov eax, offset xyz Befehl. Seltsamerweise nennt der Compiler als Zeilennummer des errors stets die jeweils folgende, allerdings verschwindet die Fehlermeldung nur dann, wenn ich die Zeile lösche/ändere, wo ich OFFSET benutze.
Jemand einen Tip, was ich hier falsch mache?
im Rahmen eines Win32 Konsole Programms kommt eine Inline-Assembler Routine vor, innerhalb derer ich allerdings wiederum auf eine C++ Library Routine (hier: fwrite) zugreifen will. Um die Parameter auf den Stack zu geben (wie in der MSDN beschrieben), hab ich folgendes codiert:
Code:
mov eax, offset pDatei
push eax
mov eax, offset iSize
push eax
mov eax, offset iOutPos
push eax
mov eax, offset pOFbuf
push eax
call fwrite
pop eax
pop eax
pop eax
pop eax
Sieht unproblematisch aus, alle Variablen sind korrekt in main deklariert, leider wird der Fehler "error C2415: improper operand type" gemeldet, und zwar für jeden mov eax, offset xyz Befehl. Seltsamerweise nennt der Compiler als Zeilennummer des errors stets die jeweils folgende, allerdings verschwindet die Fehlermeldung nur dann, wenn ich die Zeile lösche/ändere, wo ich OFFSET benutze.
Jemand einen Tip, was ich hier falsch mache?