Assembler in C++
-
ist mir auch schon aufgefallen... eigentlich komisch
wollte deshalb vor __asm {...} die variablen als DWORD deklarieren.
funkt aber nicht, da der typ DWORD nicht erkannt wird.
welche header-datei muss ich dafür einbinden?
-
windows.h bzw. windef.h
-
btw. DWORD == unsigned long
-
db/dw/dd sind im grunde überflüssig. falls du daten deklarieren willst, kannst du dieses auch in C++ machen - static.
falls du opcodes einfügen willst, die der assembler nicht kennst, kannst du emit benutzen.
ganz nebenbei gesagt funktioniert dein code ohnehin nicht richtig.
-
hab die windows.h und jetzt sogar die windef.h eingebunden.
trotzdem wird DWORD nicht erkannt!?
oder muss ich DWORD selbst über die typedef definieren?
-
Was sollte an dem Code denn nicht funktionieren?
-
smartina schrieb:
Was sollte an dem Code denn nicht funktionieren?
fehler von mir. er müsste an sich funktionieren, wenn die variablen korrekt definiert sind.
-
ok, also das mit dem DWORD erkennt der compiler (oder linker?) auf jeden fall immer noch nicht! was soll ich tun?
-
smartina schrieb:
ok, also das mit dem DWORD erkennt der compiler (oder linker?) auf jeden fall immer noch nicht! was soll ich tun?
unsigned long verwenden.
Kann aber eigentlich nicht sein; in windows.h ist DWORD mit Sicherheit included.
Moritz
-
kann mich eigentlich nur audacia anschliessen, aber wenn nicht klappt definier dir halt dein eigenes DWORD:
typedef unsigned long DWORD;
(ist auch so in der windef.h drin)