Zwei werte ausgeben
-
Und wo wird foo definiert?
-
Habe alles so gemacht nur es gibt wieder Probleme:
Fehler 2 fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?
Fehler 5 fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?
Warnung 1 warning C4627: "#include "my.h"": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
Warnung 4 warning C4627: "#include "my.h"": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
Warnung 3 warning C4627: "#include "std_lib_facilities.h"": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
-
Erstelle ein neues "LEERES" Konsolenprojekt, dann ist der stdafx Fehler weg. Du hast nämlich in den Projekteinstellungen noch vorkompilierte Header aktiviert.
-
Geanu, das ist es!
-
Ok das gemacht, neues Projekt ohne vorkompilierte Header. Doch jetzt sind folgende Meldungen:
Fehler 1 error LNK2001: Nicht aufgelöstes externes Symbol ""int foo" (?foo@@3HA)". use.obj
Fehler 2 error LNK2001: Nicht aufgelöstes externes Symbol ""int foo" (?foo@@3HA)". my.obj
Fehler 3 fatal error LNK1120: 1 nicht aufgelöste externe Verweise. C:\Users\CMTest\Documents\Visual Studio 2008\Projects\use\Debug\use.exe
-
Wo ist foo deklariert? siehe 1. Antwort im thread, siehe 2. Antwort im Thread.
Irgendwo muss "int foo" stehen bislang ist es nicht vorhanden.
-
foo ist im my.h deklariert. Und zwar als extern int foo;
-
HighLigerBiMBam schrieb:
Wo ist foo deklariert? siehe 1. Antwort im thread, siehe 2. Antwort im Thread.
Irgendwo muss "int foo" stehen bislang ist es nicht vorhanden.
Prinzipiell meinst du das richtige, aber die Frage lautet:
Wo ist es definiert
extern int foo ist nämlich eine Deklaration.
winux schrieb:
foo ist im my.h deklariert. Und zwar als extern int foo;
aber nirgends definiert.
-
foo sollte in use.cpp definiert sein
foo = 4;Und es wird als int foo erkannt.
-
Das Problem ist gelöst danke an alle für die Hilfe. Ohne eure Hilfe hätte ich das nicht geschafft. Danke nochmals. Und hier ist der Code der dann die werte 7 und 99 ausgibt.
my.h:
extern int foo; void print_foo(); void print(int);my.cpp
#include "std_lib_facilities.h" #include "my.h" int foo; void print_foo() { cout << foo << endl; } void print(int i) { cout << i << endl; }use.cpp
#include "my.h" #include "std_lib_facilities.h" int main() { foo = 7; print_foo(); print(99); char cc; cin >> cc; keep_window_open(); return 0; }