ComputerNamePhysicalDnsFullyQualified benutzen
-
Hallo Forum,
ich möchte diese Konstante benutzen: ComputerNamePhysicalDnsFullyQualified
Wenn ich im Internet suche erhalte ich diesen Treffer:
http://msdn2.microsoft.com/en-us/library/ms724224.aspxDeclared in Winbase.h; include Windows.h.
Ich habe beide Headerdateien includiert. Der Kompiler sagt mir aber noch immer das die Definition der Konstante nicht gefunden wurde. Ist das ein Fehler in der Doku? (Muß ich den Enum selber definieren?) ODer weiß jemand der korrekten Header?
Vielen Dank
Peter
-
Du musst noch
_WIN32_WINNT >= 0x0500
definieren
-
Bei mir ist die Konstante noch immer undefiniert.
Ich habe herausgefunden das es zwei WinBase.h Dateien gibt. Die im VC98\include enthällt NICHT den Enum, die WinBase.h im SDK\include Verzeichnis enthält sie. Wenn ich auf "#Include <WinBase.h>" ein OpenDocument mache erhalte ich aber die richtige WinBase.h. Beim kompilieren nimmt er die falsche. Wenn ich die normalen Header nicht benutzen lasse mit der Option in den Projektsettings bekomme ich einige HeaderNotFound Meldungen.
Wie legt man die Reihenfolge der Headerpfade fest?
Vielen Dank
Peter
-
Wie soll ein VC6 (von 98) eine Konstante kennen die im Jahr 2000 eingefügt wurde???
Also, wenn Du tatsächlich noch VC6 verwenden solltest, dann musst Du das letzte (alte) PSDK vom feb 2003 installieren:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
-
Dieses SDK ist ja drauf. Auch im Include Pfad eingetragen. Wenn ich einen Rechtsklick auf die "#Include <WinBase.h>" Anweisung mache und das Dokument öffnen lasse öffnet er mir die WinBase.h aus dem SDK wo die Konstante richtig definiert ist. Drücke ich aber auf Kompilieren kommt wieder die Meldung das sie nicht gefunden wurde.
In den Projektsettings kann ich "Ignore standard include paths" anhaken, dann findet er aber bestimmte andere Includes nicht.
-
und du hast sicher folgendes:
#define _WIN32_WINNT 0x0501 #include <windows.h>?
-
Dies ist der Code:
#define _WIN32_WINNT 0x0501 #include <windows.h> #include <winbase.h> // Hier ein Rechtsklick mit "Open Document" öffnet den richtigen Header wo // ComputerNamePhysicalDnsFullyQualified definiert ist. #include "stdafx.h" int main(int argc, char* argv[]) { printf("Hello World! %d \n", ComputerNamePhysicalDnsFullyQualified); return 0; }Der Code entsteht wenn ich ein neues Konsolenprojekt erstelle. Zusätzlich trage ich den Pfad "C:\Program Files\Microsoft SDK\include" in den Projektsettings beim Inlude Pfad ein. Jetzt sollte es doch gehen?
Der Fehler ist aber wieder:error C2065: 'ComputerNamePhysicalDnsFullyQualified' : undeclared identifier
-
Du darfst den Pfadn nicht in Deinen Projekt-Settings eintragen sondern in den Einstellungen von VS! Sonst werden immer nur die "alten" Header eingebunden; also Extras|Optionen|Vc++-Directories
-
Habe ich jetzt gemacht. Sogar an erster Stelle. Ich habe das VS neu gestartet und das Debug Verzeichnis meine Projektes gelöscht. Die Fehlermeldung besteht noch immer?