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 endp
    

    danke



  • 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 GetMyPathName
    

    bei 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 GetMyPathName
    

    und in der Prozedurdeklaration:

    GetMyPathName PROC FAR
    

    Code-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


Anmelden zum Antworten