Einzelnen Beitrag anzeigen

mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

Installationspfad einer DLL herausfinden?

  Alt 14. Dez 2006, 09:29
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
Matthias Jenke
  Mit Zitat antworten Zitat