Linker Fehler bei GetEnvironmentVariable
-
Hallo,
Ich muss mit meinem Programm überprüfen, ob eine bestimmte Umgebungsvariable bereits gesetzt ist und falls nicht diese setzen. Zur Überprüfung, ob die Variable bereits existiert wollte ich eigentlich AnsiString__fastcall GetEnvironmentVariable(const AnsiString Name) verwenden. Ich erhalte jedoch beim Kompilieren einen Linker Fehler:
BCB schrieb:
[Linker Fehler] Unresolved external '__fastcall Sysutils::GetEnvironmentVariableA(const System::AnsiString)' referenced from D:\CYGWININSTALL\MAIN.OBJ
Was muss ich machen, damit ich den Code kompilieren kann?
-
wedmer schrieb:
CYGWININSTALL
Bist du sicher, dass hier nichts durcheinandergebracht hast?
-
durcheinander gebracht? Ich bin dabei ein Installationsprogramm für die Cygwin Version die wir in der Schule benötigen zu schreiben. Unser Dozent hat uns eine Version von Cygwin zur Verfügung gestellt, die noch einige Singalverarbeitungsprogramme beinhaltet. Da die Installtion bis jetzt recht umständlich war (tgz Archiv entpacken, Batch Dateien editieren und Registry Einträge ergänzen...) dachte ich, ich schreib mal ein kleines Installationsprogramm, dass die erwähnten Einstellungen automatisch vornimmt.
Deshalb heisst mein Projektordner D:\CygwinInstall.
-
Alles klar, daran liegt es nicht.
Offenbar besteht ein Namenskonflikt zwischen der VCL-Funktion und einem Microsoft-Makro in windows.h.
Ein möglicher Workaround ist es, folgendes vor alle anderen includes zu setzen.#include <windows.h> #undef GetEnvironmentVariable
-
Vielen Dank, jetzt gehts. Woher weiss man sowas?
-
http://groups.google.com/groups/search?hl=de&lr=&num=10&q=GetEnvironmentVariable+unresolved+group%3Aborland.public.*&qt_s=Suche