Wie bind ich procs ein ?
-
Ich schreibe win32 programme (Anfänger)
Fand dieses Proc um Programmpfad herauszufinden, jetzt meine frage
wie bind ich es ein?
Wie ruf ich es auf ?GetMyPathName proc ;*** Get application path/name invoke GetModuleFileName,NULL,addr MyRealName,sizeof MyRealName invoke MessageBox, hWnd, addr MyRealName, addr myCaption, MB_ICONINFORMATION or MB_APPLMODAL ret GetMyPathName endpdanke
-
wo willst du es denn einbinden/aufrufen??? C/C++ Programm oder in dem Asm-Proggie selbst?? bei C/C++ müsstest du dem Funktionsnamen noch ein Unterstrich vorne anfügen (_GetMyPathName) und dann mittels
extern "C" { void GetMyPathName (...); }bei C++ oder mit
extern void GetMyPathName (...);bei C einbinden, dann kannst du die ganz normal aufrufen. unter assembler müsstest du die call-instruktion verwenden:
call GetMyPathNamebei bedarf natürlich vorher noch werte/argumente auf den stack pushen
cya l8r, todo
-
In Assembler das Extern aber auch nicht vergessen und das Programm was aufgerufen werden soll sowohl public als auch mit Far deklarieren:
EXTRN GetMyPathName:FAR(natürlich OHNE ";", dass macht der irgendwie automatisch) in der aufzurufenden Datei dann noch:
PUBLIC GetMyPathNameund in der Prozedurdeklaration:
GetMyPathName PROC FARCode-Hacker
-
Warum nicht einfach (benutze Masm32 Radasm)
invoke GetAppPath, eax
ohne Deklarationen davor und dahinter ??
-
Naja, solche Anweisungen habe ich gelesen sollen nicht sehr optimiert sein und den Geschwindigkeitsvorteil nehmen.
Code-Hacker