Veröffentlicht 28. Januar 200916 j 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????
28. Januar 200916 j Erstens ist bindet man (mit einer Ausnahme) Sourcedateien nicht mit Include ein. Und zweitens rufst du deine Funktion nicht auf.
28. Januar 200916 j Moin, Und zweitens rufst du deine Funktion nicht auf. ja ich weiß der Funktionsaufruf ohne void einfach nur test; Erstens ist bindet man (mit einer Ausnahme) Sourcedateien nicht mit Include ein. Ja normalerweise über Headerdateien. Aber dann habe ich ja noch mehr Dateien- dachte wegen Übersicht Gibt es keine Möglichkleit cpp direkt einzubinden?
28. Januar 200916 j Gibt es keine Möglichkleit cpp direkt einzubinden?Es geht nicht darum, ob das möglich ist. Dass es möglich ist, siehst du ja an deinem Programm. Es geht darum, ob das sinnvoll ist. Bei 2 Dateien mag es noch möglich sein, den Überblick zu behalten, aber bei mehreren Dateien wird das sehr kompliziert und fehleranfällig. Du musst nämlich sicherstellen, dass die Abhängigkeiten der Dateien einen gerichteten Baum darstellen. Sobald du gegenseitige oder zyklische Abhängigkeiten hast, funktioniert das nicht mehr. Außerdem werden dadurch alle deine Source-Dateien praktisch zu einer einzigen, großen Datei zusammengepackt, die dann auf einmal kompiliert wird. Wenn du also nur eine einzige Datei änderst, muss alles neu kompiliert werden. Wenn dich das nicht überzeugt, dann glaub mir einfach, dass es keine gute Idee ist. Gewöhn es dir ab, bevor es zum Problem wird.
28. Januar 200916 j Moin, ja ich weiß der Funktionsaufruf ohne void einfach nur test; Müsste die aufgerufene Funktion nicht connect statt functionconnect heißen? Ja normalerweise über Headerdateien. Aber dann habe ich ja noch mehr Dateien- dachte wegen Übersicht Gibt es keine Möglichkleit cpp direkt einzubinden? Deklariere doch die Funktionen in der Headerdatei nur und implementier sie in der cpp.
28. Januar 200916 j Ja normalerweise über Headerdateien. Aber dann habe ich ja noch mehr Dateien- dachte wegen Übersicht Gibt es keine Möglichkleit cpp direkt einzubinden? also ich nutze auch die Möglichkeit von Verzeichnissen in meinem Projekten. z.B. Raytracer Math Matrix.hpp MatrixImplementation.hpp Vector.hpp VectorImplementation.hpp Function3D.h Function3D.cpp GUI ..... Phil
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.