proto - Deklarationen

Offizieller deutscher Support für das MASM32 SDK. Download FAQ

Moderatoren: crack, Krüsty, Marwin

Beitragvon Aldebaran » Samstag 9. August 2003, 14:53

hallo...

ich habe schon einige Tutorials von Iczelion durchgearbeitet und habe aber Schwierigkeiten bei den proto deklarationen am Anfang:

WinMain proto :DWORD, :DWORD, :DWORD, :DWORD

wenn ich richtig liege, dann sage ich hier dem Assembler nur, dass diese Routine, 4 Werte von der grösse DWORD auf dem Stack brauche, um die entsprechende Unterroutine aufzurufen? wenn ich z.b. zwei Strings vergleichen will, dann müßte dies so aussehen:

vergleich proto :DWORD,:DWORD

..und dann

invoke vergleich, string1, string2


vergleich proc ...??????????????? ; was muss ich hier reinschreiben?
...blabla
...blabla
vergleich endp


-----------------------------------------
was ist der Unterschied zwischen "hwnd" und "hWnd"

vielen Dank
Aldebaran
ja schewu, i ze duze dobre tak :)
Benutzeravatar
Aldebaran
Newbie
 
Beiträge: 7
Registriert: Samstag 9. August 2003, 11:10

Beitragvon Marwin » Samstag 9. August 2003, 19:05

Hi Aldebaran,

vergleich proto :DWORD,:DWORD


Das ist richtig.

invoke vergleich, string1, string2


Das ist in diesem Fall falsch, da du hier Strings und keine Integer übergeben willst.
Wenn man einem Unterprogramm einen String "übergeben" möchte, so übergibt man eigentlich nur die Adresse des Strings im Speicher. (es wäre ein riesiger Aufwand, wenn man den gesamten String er in den Stack "schieben" müsste!)

Und da kommt ADDR ins Spiel, so muss es richtig lauten:

Code: Alles auswählen
invoke vergleich, ADDR string1, ADDR string2


Die Prozedur sieht dann zum Beispiel folgendermaßen aus:
Code: Alles auswählen
vergleich PROC zeichenkette1 :DWORD, zeichenkette2 :DWORD
.
.
.
vergleich ENDP


Es werden also die zu übergebenden Argumente aufgeführt, jeweils mit dem Variablennamen, welche die Prozedur verwendet, und der Datentyp-Angabe.

Der Unterschied zwischen "hwnd" und "hWnd"? Nur das große W. :lol:
Nein im Ernst, es sind nur unterschiedliche Variablennamen, mehr nicht. Diese beiden werden oft für die Handles von Fenstern verwendet. Ich persönlich benutze lieber hWindow, aber wie man seine Variablen nennt ist Geschmackssache.

Marwin
Benutzeravatar
Marwin
Moderator
 
Beiträge: 307
Registriert: Donnerstag 8. Mai 2003, 21:19
Wohnort: Seelow, Deutschland

Beitragvon Aldebaran » Samstag 9. August 2003, 23:33

danke, alles klar jetzt :)

zu hwnd: soviel ich mich erinnere, hatte ich einmal Probleme beim compilieren, weil ich im Programmcode diese Sache unterschiedlich geschrieben hatte ...deshalb meine Frage ;)

ciao
Aldebaran
ja schewu, i ze duze dobre tak :)
Benutzeravatar
Aldebaran
Newbie
 
Beiträge: 7
Registriert: Samstag 9. August 2003, 11:10

Beitragvon Marwin » Samstag 9. August 2003, 23:55

Achso. Ja, wenn du mit MASM arbeitest, dann musst du natürlich Groß-/Kleinschreibung beachten. (bei TASM wahrscheinlich auch, ich benutze es aber nicht, bin mir deshalb nicht sicher)

Marwin
Benutzeravatar
Marwin
Moderator
 
Beiträge: 307
Registriert: Donnerstag 8. Mai 2003, 21:19
Wohnort: Seelow, Deutschland


Zurück zu MASM32-Package

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron