dll datei laden...



  • hi leute ich lade eine dll datei so:

    if(NULL != (hDll = LoadLibrary("DLLTest.dll"))) 
        { 
            if(NULL != (pfnGFP = GetProcAddress(hDll, "GetInput"))) 
            { 
                // in diesen scope kann ich mir aber auch sicher sein ;-) 
            } 
            FreeLibrary(hDll); 
        }
    

    brauch ich das if(NULL != (pfnGFP = GetProcAddress(hDll, "GetInput"))) immer? was hats mit dem auf sich? is das auf eine dll spezisch bezogen oder wie?

    cu



  • Damit überprüfst Du, ob die Funktion erfolgreich aus der DLL importiert werden konnte.

    Schließlich willst Du doch diese Funktion benutzen und brauchst dafür einen gültigen Funktionszeiger (!=NULL).



  • Hepi schrieb:

    Damit überprüfst Du, ob die Funktion erfolgreich aus der DLL importiert werden konnte.

    Schließlich willst Du doch diese Funktion benutzen und brauchst dafür einen gültigen Funktionszeiger (!=NULL).

    ok gut, ohne diesen funktionszeiger kann man keine funktion benutzen?
    aber wenn man eine fremde dll datei benutzt, wie kann man da raus finden welche funktionen in der stecken??

    cu



  • Im Normalfall weiß man das schon (oder kann es mit Dependency Walker o.ä. nachschauen) - was genau willst du denn machen 😕



  • flenders schrieb:

    Im Normalfall weiß man das schon (oder kann es mit Dependency Walker o.ä. nachschauen) - was genau willst du denn machen 😕

    ja ich will die Icmp.dll benutzen! weiß aber nicht was da alles drinnen ist..

    cu



  • Genau sowas kannst du mit Dependency Walker nachschauen - wobei man doch normalerweise weiß, was man verwenden will - naja, egal 🤡



  • Dependency Walker wird ihm auch nichts nützen. Der Rückgabetyp und die Parameter werden ja nicht angezeigt. 🤡



  • surf schrieb:

    flenders schrieb:

    Im Normalfall weiß man das schon (oder kann es mit Dependency Walker o.ä. nachschauen) - was genau willst du denn machen 😕

    ja ich will die Icmp.dll benutzen! weiß aber nicht was da alles drinnen ist..

    cu

    Meinst Du die ICMP.DLL von Windows?

    Wenn Du ein einigermaßen aktuelles PSDK hast, findest Du die Infos in der MSDN...

    (zum Beispiel hier!)


Anmelden zum Antworten