Guten Morgen, alle miteinander!
Weiß jemand, wie ich in einer
DLL ihren Installations-Pfad herausfinden kann?
Hintergrund ist folgender. Ich schreibe gerade eine Word-AddIn. Dieses wird als
DLL realisiert und von Word beim Start automatisch geladen. Diese
DLL soll nun aber eine
Xml-Datei auslesen, die sich standardmäßig im gleichen Verzeichnis befinden soll, in dem auch die
DLL liegt.
Auf meinem Rechner wäre das alles kein Problem, da ich natürlich weiß, wo die
DLL liegt, ich könnte also den Pfad fest angeben. Da es sich um eine
DLL handelt, die aber auf unterschiedlichen Rechnern installiert werden soll, und ich nicht verlangen kann (kann ich leider wirklich nicht), dass diese
DLL immer im gleichen Verzeichnis installiert wird, muss die aus der
DLL benutzte Klasse bei der Initialisierung selbst herausfinden können, wo sie liegt.
Um diese
DLL nutzen zu können, muss sie zunächst als
ActiveX-Server registriert werden (das ist ein weiteres Problem, das bei der Installation gelöst werden muss, aber dazu ein andern mal). Die Schlüsselnummern werden - wenn ich das richtig sehe - vom System dynamisch vergeben und können (und werden) auf jedem Rechner unterschiedlich aussehen. Also kann ich auch nicht einfach nach einer festen Schlüsselnummer in der Registry suchen.
Eine weitere Alternative wäre, bei der Installation einen festen Schlüssel in die Registry einzutragen, in welchen der Installationspfad eingetragen wird (so nach dem Motto HKEY_LOCAL_MACHINE/Firmenname/Produkname/InstallPath... diese Alternative bevorzugt ein Kollege von mir). Das läßt mich aber ein wenig unbefriedigt...
Ich hoffe, dass meine Beschreibung oben jetzt nicht zu sehr Kraut-und-Rüben war... Mein Problem ist also:
Weiß eine DLL, wenn sie geladen wird, wo sie liegt? Und wenn ja, wie bringe ich sie dazu, es mir mitzuteilen?
Falls mir jemand weiterhelfen könnte wäre das super!
Matthias