ich brauch dringend eure hilfe

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

Antworten
rag_dog
Newbie
Beiträge: 3
Registriert: Donnerstag 9. November 2006, 00:22

ich brauch dringend eure hilfe

Beitrag von rag_dog » Donnerstag 9. November 2006, 00:27

hi zusammen

ich habe folgendes problem wie ist der source richtig?

.elseif uMsg == WM_COMMAND

.if wParam == IDC_TEST1
.esleif wParam == IDC_TEST2
.endif

oder so


.elseif uMsg == WM_COMMAND
mov eax,wParam

.if eax == IDC_TEST1
.esleif eax == IDC_TEST2
.endif


danke

re:

ich habs gelöst bekommen!

arber könnte mir das jemand genauer erklären

HIWORD wParam ;events of controls
mov edx,eax ;exemple :TCN_SELCHANGE
LOWORD wParam ;ID of commands eax
mov ebx,lParam ; handle of controles


ragdog

Benutzeravatar
crack
Administrator
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf
Kontaktdaten:

Re: ich brauch dringend eure hilfe

Beitrag von crack » Freitag 10. November 2006, 21:11

rag_dog hat geschrieben:hi zusammen

...

re:

ich habs gelöst bekommen!

arber könnte mir das jemand genauer erklären

HIWORD wParam ;events of controls
mov edx,eax ;exemple :TCN_SELCHANGE
LOWORD wParam ;ID of commands eax
mov ebx,lParam ; handle of controles


ragdog
Nun, um dazu etwas zu schreiben ist wohl ein etwas längerer Ausschnitt aus dem Quellcode erforderlich ... :wink:
Und den Quellcode 'umhüllt' man im Posting am besten mit: [ code ] und [ /code ] (selbstverständlich ohne die Leerzeichen, bzw. oben bei den Edit Funktionen gibts einen Button für diese Code Tags ;)
mit freundlichen grüssen,
with best regards,

crack

Benutzeravatar
crack
Administrator
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf
Kontaktdaten:

Re: ich brauch dringend eure hilfe

Beitrag von crack » Samstag 11. November 2006, 22:40

rag_dog hat geschrieben:hi zusammen

ich habe folgendes problem wie ist der source richtig?

.elseif uMsg == WM_COMMAND

.if wParam == IDC_TEST1
.esleif wParam == IDC_TEST2
.endif
wenn da tatsächlich "esleif" stand konte es wohl nicht funktionieren: "Syntax Error" :wink:
rag_dog hat geschrieben: oder so


.elseif uMsg == WM_COMMAND
mov eax,wParam

.if eax == IDC_TEST1
.esleif eax == IDC_TEST2
.endif


danke

re:

ich habs gelöst bekommen!

arber könnte mir das jemand genauer erklären

HIWORD wParam ;events of controls
mov edx,eax ;exemple :TCN_SELCHANGE
LOWORD wParam ;ID of commands eax
mov ebx,lParam ; handle of controles


ragdog
Kurz mal den Blick hinter die Kulissen:
die
.if
...
.elseif
...
.endif
Konstruktion wird vom Kompiler in
cmp ...
jnz ...
jmp ...

umgewandelt, und bei dem Vergleich mittels Compare (cmp) sind als Operanden nicht alle Kombinationen zlässig, wenn du versuchst Speichervariable mit Speichervariablen zu vergleichen, kann der Kompiler keine gültige Codesequenz erzeugen daher ist es erforderlich zuerst die Speichervariable1 in ein Register (EAX, EBX ...) zu laden und dann innerhalb der .if .elseif .endif Konstruktion zu verwenden, das dürfte auch in dem Fall der Grund des Problems gewesen sein ;)
mit freundlichen grüssen,
with best regards,

crack

Antworten