GetEnvironementVariable(..) funktioniert nicht in DLL
-
Hallo,
mit dem C++Builder6 habe ich eine DLL erzeugt, die vom Apache als Schnittstelle
fuer einen WebService geladen wird. Beim Laden der DLL (d.h beim Starten des Apache) wird eine Initialkonstruktorklasse im 'DLLEntryPoint()' instanziiert. Innerhalb deren CTors sollen Umgebungsvariablen mit Hilfe der SysUtil-Methode GetEnvironementVariable() ausgelesen werden. Das funktioniert nicht!Woran koennte das liegen? Wer kennt eine Loesung fuer dieses Problem?
Fuer jede Idee dankbar ist
Guido
-
"Funktioniert nicht" ist keine zulässige Fehlermeldung oder Problembeschreibung.
Auf diese Weise wirst du hier sicher auch nicht mehr Antworten bekommen als in den Newsgroups.
-
07:59:25 10.10.2003 Titel: GetEnvironementVariable(..) funktioniert nicht in DLL Zitieren
--------------------------------------------------------------------------------
Hallo Jansen, Du hast recht ;-), auf ein Neues,mit dem C++Builder6 habe ich eine DLL erzeugt, die vom Apache als Schnittstelle
fuer einen WebService geladen wird. Beim Laden der DLL (d.h beim Starten des Apache) wird eine Initialkonstruktorklasse im 'DLLEntryPoint()' instanziiert. Innerhalb deren CTors sollen Umgebungsvariablen mit Hilfe der SysUtil-Methode GetEnvironementVariable() ausgelesen werden.GetEnvironementVariable() liefert eine 0 anstelle des erhofften Variablen-Wertes, obwohl ich deren Inhalt mit 'set' anschauen kann.
Woran koennte das liegen? Wer kennt eine Loesung fuer dieses Problem?
Fuer jede Idee dankbar ist
Guido
-
Was mir dazu spontan einfällt, läuft Dein Apache Service unter dem lokalen Systemkonto ? Wenn dem so ist, lass Apache mal z.B. unter dem Adminstrator Konto laufen.
-
wenn du die dll selbst lädst (nicht Apache), bekommst du richtige werte?
-
Hallo,
Peter schrieb:
> Was mir dazu spontan einfällt, läuft Dein Apache Service unter dem lokalen
> Systemkonto ? Wenn dem so ist, lass Apache mal z.B. unter dem Adminstrator
> Konto laufenIch weiss nicht, was Du unter diesen Konten verstehst, meinst Du Benutzer-
Rechte?Xqgene schrieb:
> wenn du die dll selbst lädst (nicht Apache), bekommst du richtige werte?Selbstladen geht mit 'LoadLibrary' o.ä.? Ich bilde die Applikation auch
als EXE aus und da funktioniert alles wie gewuenschtGruss Guido
-
Guido Theinert schrieb:
Ich weiss nicht, was Du unter diesen Konten verstehst, meinst Du Benutzer-
Rechte?(Bezogen auf WIN2000 ...)
Geh zu Start -> Einstellungen -> Systemsteuerung -> Verwaltung -> Dienste
Such Dir aus der Liste den Apache-Dienst raus und mach da nen Doppelklick drauf.
Klicke auf den Tab Anmelden
Wenn da steht Anmelden als Lokales Systemkonto ändere das mal auf Dieses Konto und gib dazu die entsprechenden Parameter an, z.B. Administrator und das entsprechende Kennwort. Drücke den OK-Knopf, stoppe und starte den Apache Dienst.
Probier jetzt, ob die DLL das Environment lesen kann.