DLL einbinden
-
Wie kann man eine DLL einbinden die nicht im selben ordner liegt sondern im unterordner DLLs ?
mfg DKing
-
soll das Programm auf windoof oder auf Linux ausgeführt werden?
Grundsätzlich kannst du eigentlich immer relative Pfadangaben auch zu Unterordnern machen.
zb. bei windoof:
dein Programm liegt im (absoluten) Pfad C:\Meine Programme\program.exeNun hast du die DLL foo.dll unter C:\Meine Programme\DLLs\foo.dll liegen und willst sie einbinden.
Du könntest dies natürlich absolut machen. Da aber nicht jedes andere System die selbe Ordnerstruktur hat wie dein Rechner, solltest du nicht unbedingt absolut C:\Meine Programme\DLLs\foo.dll angeben, sondern vielmehr relativ mit .\DLLs\foo.dll
Der Punkt steht dabei für das aktuelle Verzeichnis, also das in dem die Datei ausgeführt wird.
Wenn du nicht weißt, was absolute und relative pfadangaben sind, frag am besten nochmal nach

-
Ich glaube, du hast nicht verstanden, was er will.
Mir fallen drei Möglichkeiten ein:
1. Du lädst die DLLs zur Laufzeit mit LoadLibrary. Könnte aber ziemlich mühsam sein, wenn du viele Schnittstellen hast.
2. Du machst ein kleines anderes Programm, das den Pfad um das Unterverzeichnis erweitert und dann dein eigentliches Programm startet.
3. Du machst ebenfalls ein kleines Programm, das das dein eigentliches Programm aufruft. Dieses legst du aber zu den DLLs ins Unterverzeichnis.
Nummer 3 ist eigentlich mein Favorit, auch wenn es nicht 100% deine Fragestellung beantwortet.
-
Nen hilfsprogramm aufrufen was das eigentliche Programm startet klingt schon sehr .... abenteuerlich ^^
Naja kommt drauf an, wie und fuer was mein sein programm verwendet. mit obiger methode koenntest entweder probleme mit der sicherheit (wenn wer dein eigentliches programm durch nen boeswilliges ersetzt) oder mit der versionierung bekommen.Wenn deine Dll nen plugin ist, geht man eh anders vor ... sprich dein hauptprogramm muss da ohne die dll laufen .... und es wird soewieso per hand dynamisch geladen
ist deine dll nen fester bestandteil, stellt sich sowieso ne ganze reihe von fragen ....
- stellt die Dll grundlegende funktionalitaet auf systemebene zur verfuegung gehoert sie in nen allgemeines verzeichnis ala system32
- wenn sie direkt nur an deinem programm gebunden ist, warum dann nen dll unterverzeichniss ?willst du kompliziertere sachen machen, wirst eh um das verwalten eines suchpfades nicht drumherumkommen ..... Oder ueber ne systemvariable
Xerces c++ (XML parser) und QT z.B. verlaesst sich zum beispiel drauf, das LoadLibrary die dll findet (sollt also im aktuellen oder im system32 verzeichniss liegen)
Ciao ...
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.