C++: Setenv(). Undefinierter Bezeichner in Visual Studio
Schaut mein code scheint richtig zu sein, nach all den Unterlagen, die ich online finden können. Meine IDE MS Visual Studio Xpress 4 Windows Desktop-2012, und es ist compiler wirft den Fehler:
Error 1 error C3861: 'setenv': identifier not found e:\users\owner\documents\visual studio 2012\projects\project1\project1\source1.cpp 18 1 Project1
.
Mir helfen!!!
#include <windows.h>
#include <sstream>
#include <ostream>
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
using namespace std;
int howManyInClass = 0;
int main(){
long checklength = sizeof(getenv("classSize"))/sizeof(*getenv("classSize"));
if (checklength==0){
cout<<"Please enter the ammount of students in your class";
cin>> howManyInClass;
cin.ignore();
setenv("classSize", howManyInClass, 1);}
};
Warten Sie, ich sollte nicht nötig 2 ist, wie ich schon verwendet, als namespace std
InformationsquelleAutor MWP | 2013-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie entweder
_putenv()
die einen string-parameter als ZeichenfolgeclassSize=7
;...oder (vorzugsweise) die Sicherheit verbessert
_putenv_s()
, nimmt den Schlüssel und den Wert als separate (const char*) Parameter;_putenv()
_putenv_s
links scheinen tot.InformationsquelleAutor Joachim Isaksson
Microsoft runtime library nicht die Unterstützung der standard -
setenv()
Funktion. Sie könnten Ihre Ersatz_putenv()
oder für portablen code, ich benutze lieber einen einfachen wrapper.Hier mein wrapper mit der standard-Schnittstelle:
InformationsquelleAutor Bill Weinman
Versuchen
_putenv
stattsetenv
.msdn _putenv
sollte ich _putenv_s
Das ist eine bessere Lösung für die sichere, aber denken Sie daran, dass die Unterstützung nur nach VS2005.
InformationsquelleAutor flied onion
den Grund, warum Sie auf die Verknüpfung Fehler ist, dass, wenn man einen Blick auf den Inhalt der Bibliothek stdlib.h, Sie werden feststellen, dass, setenv() ist nicht deklariert, da. Auf den ersten Blick, es ist eine C-standard-API, aber sieht aus wie Windows Folgen nicht alle dem standard. Oder Sie könnten in der Lage sein, um die Konfiguration Ihrer VS zu verwenden CRT statt der Windows-Laufzeitumgebung, in diesem Fall, denke ich setenv ermittelt werden.
InformationsquelleAutor user3769509