cpp einbinden
-
Hallo,
ich wollte ein größeres Projekt schreiben. Dazu wollte ich einzelne Funktionen auf einzelne Dateien auslagern. Ich benutze Visual Studio 2005.
In meiner main cpp Datei steht:// automatic_transfer.cpp : Defines the entry point for the console application. // #include <functionconnect.cpp> #include "stdafx.h" #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { cout << "Hallo \n"; void functionconnect(void); int warte; cin >> warte; return 0; }
Dann habe ich im selben Ordner eine cpp Datei:
#include "stdafx.h" #include "stdafx.h" #include <iostream> using namespace std; void connect(void) { int warte; cout << "Test okay"; cin >> warte; }
Warum wird meine Funktion in main nicht ausgeführt. Ist doch mit #include <functionconnect.cpp> implementiert????
-
1. Die Funktion würde ausgeführt, wenn du sie aufrufen würdest. Du hast da in deiner main einen Funktionsprototypen notiert! Das ist kein Aufruf!
2. Einen Prototypen könntest du dir in dem Fall sparen.
3. Man inkludiert keine cpp-Dateien. Füge die cpp-Datei deinem Projekt hinzu, so dass sie kompiliert und die erzeugte Objektdatei zu deiner exe gelinkt wird. In main.cpp inkludierst du dann den passenden Header, der die Prototypen deiner Funktionen enthält (den musst du halt noch schreiben).
-
Hallo Wulfgang,
in erster Linie greifst Du auf die falsche Funktion zu...
void functionconnect(void);
Du musst dann schon auf die Funktion
connect();
Und zum anderen musst Du die Funktion bekannt machen...
main
// bsp.cpp: Hauptprojektdatei. #pragma once #include "functionconnect.cpp" #include "stdafx.h" #include "stdafx.h" #include <iostream> using namespace std; void connect(); int _tmain(int argc, _TCHAR* argv[]) { cout << "Hallo \n"; connect(); int warte; cin >> warte; return 0; }
und nun die functionconnect.cpp
#pragma once #include "stdafx.h" #include <iostream> using namespace std; void connect() { int warte; cout << "Test okay"; cin >> warte; }
-
Okay, danke für die Antworten. Ich werde das dann wohl wohl doch lieber mit Haeder-Dateien realisieren-wegen der Übersicht.