Parameter zwischen Assembler und Windows
-
Hi,
wenn man z.B. eine .zip Datei startet bekommt WinZip ja den Dateiname als Parameter von Windows übermittelt. Meine Frage ist jetzt wie kann man solche Windows-Parameter von einen Assembler Programm auswerten ?
-
mit der Winapi Funktion
GetCommandLine
-
Und wie kann ich die benutzen ?
-
Du rufst die Funktion einfach auf. Sie liefert dir einen Zeiger auf dir Kommandozeile zurück. Wahrscheinlich in eax, ich bin mir aber nicht sicher da ich das noch nie gemacht habe.
-
Der Rückgabewert (egal welcher Windowsfunktion) ist immer in EAX.
-
Das heißt
call GetCommandLine
Oder wie ?
-
Ja, und in EAX ist der Pointer auf einen String.
-
Irgendwie geht das nich, denn dann steht bei NASM immer das GetCommandLine undifiniert ist und wenn es als extern angebe kann ich keine .com Datei mehr daraus erstellen lassen.
Kann jemand bitte mal ein einfaches Beispiel dazu posten ? Ich komm amit echt nicht klar ... Danke.
-
Kann nicht bitte irgendwer dazu ein kleines Beispiel für NASM posten ?
-
wenn es als extern angebe kann ich keine .com Datei mehr daraus erstellen lassen.
*
Da muss ich doch mal fragen: willst du jetzt ein DOS- oder ein Windows-Programm schreibenBei einem DOS-Programm stehen auch die von Windows beim "Öffnen mit" übergebenen Parameter im PSP bei Offset 0080h.
Bei einem .com-Programm zeigt DS von Anfang an aufs PSP, also steht bei ds:0080h die Länge der Parameterliste (Anzahl der folgenden chars - 1 Byte) und direkt dahinter ab offset 0081h die Parameterliste selbst.[ Dieser Beitrag wurde am 19.06.2002 um 12:11 Uhr von Nobuo T editiert. ]
-
Danke