|
You last visited: Today at 23:13
Advertisement
Visual Studio 2012: automatisches einbinden von Headerdateien?
Discussion on Visual Studio 2012: automatisches einbinden von Headerdateien? within the C/C++ forum part of the Coders Den category.
08/09/2012, 20:29
|
#1
|
elite*gold: 0
Join Date: May 2012
Posts: 23
Received Thanks: 1
|
Visual Studio 2012: automatisches einbinden von Headerdateien?
Mir ist aufgefallen, dass ich, ohne bestimmte Headerdateien einzubinden, manchmal trotzdem Objekte und Funktionen nutzen kann wie z.B. cout aus iostream oder exit() bzw. abort() aus cstdlib/stdlib.h.
Kann's vielleicht sein, dass VS 2012 die automatisch lädt?
habe ein normales WIN32 Konsolenprojekt ohne Headerdateien und sonstiges erstellt. Und was hat es mit dem Ordner "Externe Abhängigkeiten" auf sich? dort sammeln sich verschiedene Dateien und darunter auch cstdlib und iostream.
|
|
|
08/10/2012, 00:44
|
#2
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Joa, dann wird VS12 das wohl so tun.
Externe Abhängigkeiten kenne ich aus virtuellen Sprachen wie C# oder Java, wo im Projekt auch immer ein Ordner für externe Abhängigkeiten ist, die, was den Standard angeht, automatisch eingebunden werden, wenn sie im Projekt verwendet werden.
VS12 macht das gleiche dann wohl nun auch für C++.
|
|
|
08/10/2012, 01:00
|
#3
|
elite*gold: 0
Join Date: Jun 2011
Posts: 265
Received Thanks: 50
|
Finde ich persönlich nicht gut dass VS2012 das macht.
|
|
|
08/10/2012, 08:07
|
#4
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
Kann ich nicht bestätigen. Visual Studio 2012 Release Candidate erstellt mir folgende Dateien bei einem Win32 Projekt:
stdafx.h
Code:
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
targetver.h
Code:
#pragma once
#include <SDKDDKVer.h>
<ProjektName>.h
Code:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
stdafx.cpp
Code:
#include "stdafx.h"
Ich lediglich Zugriff auf std::nullptr_t.
Und "Externe Abhängigkeiten" werden nicht automatisch eingebunden, ganz im Gegenteil. Das ist einfach eine Liste aller eingebundenen Header, die nicht direkt zu deinem Projekt gehören.
|
|
|
08/10/2012, 12:58
|
#5
|
elite*gold: 0
Join Date: May 2012
Posts: 23
Received Thanks: 1
|
Quote:
Originally Posted by Kosic
Finde ich persönlich nicht gut dass VS2012 das macht.
|
Find ich auch nicht gut. Besonders wenn man C++ lernt >.>
Man will ja auch lernen wo sich was befindet und so
Hab nochmal einen Test mit einem ganz neuem LEEREM WIN32 Konsolenprojekt gemacht in der ich nur eine .cpp mit dem Code:
Code:
#include <iostream>
using namespace std;
#define TEST cout << "Ist schon inkludiert" << endl;
#ifndef _CSTDLIB_
#ifdef TEST
#undef TEST
#endif
#define TEST cout << "Ist NICHT inkludiert" << endl;
#endif
int main(void)
{
TEST
return 0;
}
erstellt habe und beim ausführen steht dort, dass cstdlib bereits inkludiert wurde (aber halt nicht von mir :/ ).
Entweder wird es durch iostream oder durch VS 2012 inkludiert... wäre nett wenn jemand ne lösung weiß wie ich das ausschalten kann, da das fürs lernen echt bissle blöd ist.
|
|
|
08/10/2012, 18:03
|
#6
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Ob cstdlib eingebunden wird, weiß ich nicht, versuch es doch mit etwas eindeutigem wie std::string.
Wenn der Typ bekannt ist, bindet dein VS die Header wohl automatisch ein.
Also ich fände das sehr angenehm, wenn mein VS das täte.
|
|
|
08/10/2012, 18:36
|
#7
|
elite*gold: 0
Join Date: Sep 2005
Posts: 426
Received Thanks: 87
|
Quote:
Originally Posted by -Epitaph-
Mir ist aufgefallen, dass ich, ohne bestimmte Headerdateien einzubinden, manchmal trotzdem Objekte und Funktionen nutzen kann wie z.B. cout aus iostream oder exit() bzw. abort() aus cstdlib/stdlib.h.
Kann's vielleicht sein, dass VS 2012 die automatisch lädt?
|
Microsoft hat mit VS2012 seit Augenmerk wieder etwas mehr auf C++ gerichtet was ja in den letzten Jahren mit dem .Net etwas untergegangen ist und möchte unter anderem die Produktivität in C++ weiter erhöhen. Wird wohl noch weitere Featurepacks hierfür von Microsoft geben.
Gab hierzu mehrere direkte/indirekte Statements auf dem "C++Day in Bad Homburg"
|
|
|
08/10/2012, 22:46
|
#8
|
elite*gold: 0
Join Date: May 2012
Posts: 23
Received Thanks: 1
|
Quote:
Originally Posted by MrSm!th
Ob cstdlib eingebunden wird, weiß ich nicht, versuch es doch mit etwas eindeutigem wie std::string.
Wenn der Typ bekannt ist, bindet dein VS die Header wohl automatisch ein.
Also ich fände das sehr angenehm, wenn mein VS das täte.
|
Also ich kann nen string ohne die headerdatei aber mit dem namespace deklarieren und initialisieren aber nicht über cout ausgeben.
Vielleicht bild ich mir auch nur was ein... Das erste mal als mir das aufgefallen ist, war als im Buch als Aufgabe stand, dass ich den namespace std weglassen und dann die Ausgabe mit cout testen sollte und das hat dann ohne den namespace funktioniert... hab dann auch noch glaub ich die headerdatei entfernt und es hat geklappt. In nem neuem Projekt dann allerdings nimmer... Und nu stand in nem andren Buch dass man für abort()/exit() cstdlib inkludieren müsste aber es geht auch ohne.
Vielleicht isses nur nen Fehler im Buch oder es liegt an den neuen Compilern.
kam mir halt nur bissle komisch vor.
Aber was solls ^^
Trotzdem danke für die Antworten
|
|
|
08/10/2012, 23:08
|
#9
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Also wenn du ohne explizite Namensauflösung cout verwenden kannst, ist das definitiv ein Fehler.
Entweder musst du über eine using/using namespace direktive den Namensraum angeben oder halt std::cout, aber ganz ohne geht nicht, das widerspricht dem Standard.
Das mit dem String hab ich nicht verstanden.
|
|
|
Similar Threads
|
Qt in Visual Studio 2008 Express einbinden
09/20/2010 - .NET Languages - 4 Replies
Ja wie die Überschrift es schon sagt Qt in Visual Studio 2008 Express einbnden.
Wie kann man das machen ...
Habe schon gegoogelt aber leider habe ich das alles nicht kapiert.
Kann das jemand ausfürhlich mir erklären : )
|
Visual Studio
12/08/2009 - .NET Languages - 7 Replies
Moin, wollte ma fragen, welche Version ihr vom Vusial Studio benutzt ;D
ich benutze momentan 2008.
Steige wahrscheinlich bald auf 2010 um, aber das gibts ja leider noch nicht auf Deutsch *g*
|
MS Visual Studio.
11/18/2005 - Main - 0 Replies
http://forums.microsoft.com/MSDN/ShowPost....12660 6&SiteID=1
:rolleyes: love it!
|
All times are GMT +2. The time now is 23:13.
|
|