DLL mit Bedingung



  • Hi Leute,

    hab folgendes Problem. Ich hab mir ne DLL erstellt, bzw den Source Code dazu. Ich verwende in der DLL die Headerdatei pdh.h. Ich binde diese also mit #include "pdh.h" ein. Nun is das problem das die pdh.h die funktionen der pdh.dll (eine datei aus dem systemverzeichnis von windows) statisch einbindet und diese pdh.dll nur unter NT vorhanden ist.

    Wie mache ich es also das in der DLL nur dann die Funktionen importiert werden wenn die pdh.dll auch da ist? Sonst kommt auf Win9x Rechnern bei Benutzung meiner DLL immer die Fehlermeldung "Pdh.dll not found" und Programmabsturz.

    Ich hatte mir sowas in der Art gedacht:

    #if defined(PDH_VERSION)
    #include pdh.h
    #endif

    Aber irgendwie will das so nich funzen. Hoffe Ihr versteht was ich meine.

    Thx für Hilfe im Vorraus.



  • Zuerst einmal: Du bist im falschen Forum.

    Zu deinem Problem:
    Dynamisches Laden von DLLs geht mit LoadLibrary. Die Funktionsadressen bekommst du mit GetProcAddress. Such einfach mal im WinAPI-Forum.



  • Dynamisches Laden mit LoadLibrary

    Genau das wollte ich vermeiden, denn dann muss ich die pdh.h auseinandereflücken. Du hast mich falsch verstanden, egal. Habs anders gelößt und es geht.



  • VT_as_Guest schrieb:

    Genau das wollte ich vermeiden, denn dann muss ich die pdh.h auseinandereflücken. Du hast mich falsch verstanden, egal. Habs anders gelößt und es geht.

    Und wie hast du es gelöst?


Anmelden zum Antworten