Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ERROR

Alter Hase

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

11

05.06.2015, 23:32

Genauso wie du Variable nur einmal definieren darfst, darfst du auch Methoden nur einmal definieren. Du versuchst anscheinend 2 Programme zu schreiben, das geht in einer IDE aber anders als einfach nur 2 cpps zu machen.

In Visual Studio wird eine "Projektmappe" erstellt, sobald du ein neues Projekt erstellst. Du kannst dir das als wirkliche Mappe(bzw Aktenordner) vorstellen. Ich habe mal einen Screenshot von einem minimal Projekt gemacht. Dort steht ja auch "Projektmappe"Misc"(1 Projekt)". Es handelt sich dabei also um die Projektmappe "Misc", in der 1 Projekt ist. Direkt unter der Mappe sieht man in der Hirarchie das Projekt, welches auch "Misc" heisst. Beim Erstellen eines Projekts, genauer gesagt sobald du ihm en Namen gibst, bekommt die Projektmappe(Feld ganz unten im Dialog) den gleichen Namen. Daher heissen in meinem Beispiel auch Projektmappe und Projekt gleich. Diese Projekte werden praktisch wie ein Stapel Blätter einfach in die Mappe gelegt.
Wie du siehst hat mein Projekt eine main.cpp, in der ist auch die main Methode. Möchte man nun (aus welchem Grund auch immer) ein neues Projekt erstellen, hat man 2 Möglichkeiten. Entweder man erstellt eine neue Projektmappe mit neuem Projekt, oder man erstellt ein neues Projekt IN der aktuellen Projektmappe. Den zweiten Fall siehst du im zweiten Bild dargestellt. Dort gibt 2 Projekte in einer Projektmappe. Ich habe zwar die Namen im Bild (aus Gründen der nationalen Sicherheit) rausgenommen, aber du solltest ja sehen, was ich damit zeigen möchte.

Ich hoffe durch die Erklärung weisst du, wie das ganze mit 2 Projekten im Visual Studio geht. Aber ob das die richtige Lösung für dein Problem ist, können wir dir weiterhin nur sagen, wenn du uns erklärst was du machst, oder den Code zeigst oÄ. Weiterhin bin ich mir nämlich nicht sicher, ob das wirklich das ist was du möchtest.
»ERROR« hat folgende Bilder angehängt:
  • VS_Capture.PNG
  • VS_Capture2.PNG

12

05.06.2015, 23:45

Genau. Die einzelnen cpp dateien sind keine eigenen separaten programme, sondern bilden zusammen mit anderen cpp (modulen) eine ausführungseinheit. So kann man dinge wie funktionen gruppieren, auslagern und in ein eigenes modul stecken. Dann sagst du, dass eine bestimmte funktion nicht im aktuell compilierten, sondern in einem anderen modul steckt. Nachdem nun der compiler alle module zu zwischenformaten compiliert hat, ist der linker dran, welcher verweise (also die funktionen) von einem modul auf ein anderes modul auflöst. Wird etwas, was gebraucht und darauf verwiesen wird, nicht gefunden, gibts fehler. Genauso wenn dinge doppelt definiert werden.

13

06.06.2015, 00:15

Der Code ist egal. Man nehme also 2x Hello World. Jeweils eine CCP. So man hat in einem Projekt 2 CCP Files mit je einem Hello World.

Erster Fehler erkannt un die Mainfunktion in dem anderen Hello World CCP abgeändert in "int test".

Wie ERROR gesagt, 2. Projektmappe aufgemacht rechts, jetzt hab ich 2. mit je einer CCP File. Ok funktioniert. debuggen läuft...

Allerdings wenn ich etwas in der einen CCP File ändere wird dies automatisch in der anderen im anderen Projekt geändert... Obwohl im anderen Projekt versucht CCP Name zu ändern. Kein Erfolg. Findet Datei nicht mehr. :cursing:

edit: hier noch screen


(Link)
Ich habe zwar keinen Computer, aber was soll's.
Ich hab mir zum üben, eine Tastatur aus Papier gemacht.

14

06.06.2015, 00:50

Na wenn 2 projekte eine selbe datei referenzieren, und in einem nennst du diese datei um, kann das andere projekt die natürlich nicht mehr finden.

15

06.06.2015, 00:54

Also selbst wenn ich 2 Projektmappen habe, kann trotzdem nur eine main vorhanden sein?

also bleibt nichts anderes übrig als eigenes projekt für jedes codeteil.... oder auskommentieren....
Ich habe zwar keinen Computer, aber was soll's.
Ich hab mir zum üben, eine Tastatur aus Papier gemacht.

ERROR

Alter Hase

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

16

06.06.2015, 00:58

Wenn 2 Menschen Dinge aufschreiben sollen, ist es dann wohl besser ein einzelnes Blatt zu verwenden oder beiden ein jeweils eigenes Blatt zu geben?

EDIT:
Ups, da waren beide schneller :D

Nein, natürlich kann jedes Projekt eine eigene main haben, muss es sogar. Vereinfacht ausgedrückt wird jedes Projekt eine exe und eine exe hat eine main. ABER wenn du beiden Projekten die GENAU GLEICHE Datei(zB cpp) hinzufügst, veränderst du die Datei bei einer Änderung in BEIDEN Projekten, weil es halt die GLEICHE Datei ist (siehe Beispiel oben).

17

06.06.2015, 01:42

so hatte ich das auch verstanden. leider ist es nicht so.

die neu erstellte cpp Datei in einem neuen Projekt zeigt nach dem debuggen das consolenfenster des anderen programms.
Ich habe zwar keinen Computer, aber was soll's.
Ich hab mir zum üben, eine Tastatur aus Papier gemacht.

ERROR

Alter Hase

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

18

06.06.2015, 01:55

Du kannst mir und mehreren tausend (vielleicht sogar millionen?) Leuten glauben, wenn man es richtig macht, funktoniert es.

Du gibst zu wenig Infos, daher muss ich raten:
1) Hast du jeweils auf den "Source Files"-Ordner in einem der Projekte rechts geklickt und neues Element hinzufügen gewählt? Dann müsste jedes mal eine neue Datei erstellt werden.
2) Bist du dir sicher, dass du immer das richtige Projekt ausführst compilierst und ausführst? Wenn du auf den grünen Pfeil klickst, wird das aktuelle Projekt, also das fett geschriebene, compiliert und ausgeführt. Du kannst das aktive über einen Rechtsklick auf das Projekt und dann "set as active project"(oder so ähnlich) ändern.

19

06.06.2015, 03:11

Du kannst das aktive über einen Rechtsklick auf das Projekt und dann "set as active project"(oder so ähnlich) ändern.
... :search: ...


8o ... :cursing: ... Gepriesen sei der Herr!.... endlich... AMEN! Halleluja! ... :rolleyes:
Ich habe zwar keinen Computer, aber was soll's.
Ich hab mir zum üben, eine Tastatur aus Papier gemacht.

20

06.06.2015, 16:12

also ich würde darauf tippen, dass du versehentlich mehrere Main.cpp Dateien in deinem Projekt hast. Ansonsten kann ich dir empfehlen, die Dateien einfach in Headerdateien umzuwandeln. In meinen Projekten habe ich meist nur 2 Dateien, die main.cpp und die ausgelagerten Funktionen in einer funktionen.h Damit klappts. Es wäre in deinem Falle wahrscheinlich einfacher in einer cpp zu arbeiten und dann Tests auszukommentieren!
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

Werbeanzeige