Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » compiler fehler bei auslagerung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ]
010
25.01.2007, 20:03 Uhr
tobias
hmm....


und wie sollte das gehen? genau das hatte ich probiert... den ganzen code in eine extra cpp datei und dann an der stelle wo der hin soll:

#include "basicframe_menu.cpp" aber das geht nicht... Dann bekomm ich fehlermeldungen das klassen nicht vorhanden sind etc.
--
Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
25.01.2007, 20:19 Uhr
Blubber2063



Man bindet keine cpp Dateien ein, nur .h Dateien, da für jedes Modul Code generiert wird und du würdest sonst beim Linken nen Fehler kriegen, weil du da den Code mehrfach hättest.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
25.01.2007, 20:22 Uhr
tobias
hmm....


na wie programier ich das dann als modul? helft mir doch mal statt immer zu schrieben: man macht das und dies nicht... ich weis einfach nicht wie ich sonst die übersicht behalten soll
--
Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
25.01.2007, 20:33 Uhr
Blubber2063



Das hat dir J-Jayz doch geschrieben. Und bei Funktionen brauchst du im Header nur eine Forwarddeklaration, also die ganze Funktionssignatur gefolgt von einem ";" die komplette Funktion wird dann in der cpp Datei definiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
25.01.2007, 20:34 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Die Sache ist die. Wenn du an einer Stelle #include "foo.cpp" schreibst, wird das zwar included aber nicht ausgeführt. Mach zu begin #include "foo.cpp" und dann da wo du es haben willst meineFunktion(); - der Code, der in meineFunktion() steht, wird dann ausgeführt
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
25.01.2007, 20:35 Uhr
tobias
hmm....


ehm ich hab nix verstanden, aber ich belasse es nun dabei, weil ich kein bock habe jetzt mich rumzuquählen... ich bleib auf meinen 5000 zeilen sitzen, gefällt mir zwar nicht, muss mich aber damit anfreunden.
--
Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
25.01.2007, 21:04 Uhr
stephanw
localhorst


Du hast vielleicht in PHP auch nicht wahnsinnig strukturiert gearbeitet, sondern schlicht große Quelltexte aus kleinen zusammengesetzt, die dann nur zusammen irgendwie funktioniert haben.
Man kann (und sollte) bei ernsthaften Projekten Klassen oder Module aus Funktionen gruppieren und diese dann in Dateien verteilen. Dafür braucht man einfach ein bisschen Programmiererwissen, denn Programmieren ist eben mehr als nur die Kenntnis der Programmiersprache. Da Du ja lange mit PHP gearbeitet hast und damit auch mit den Funktionen/Klassen die dazu gehören, hast Du doch bestimmt ein Gefühl dafür, was man wo in eine Funktion steckt.
Vielleicht ist es auch nicht schlecht, sich mal prinzipiell die Unterschiede zwischen einer Compilersprache wie C/C++ und einer Skriptsprache wie PHP klarzumachen und die Konsequenzen zu durchdenken, die ein #include in C/C++ hat gegenüber einem include/require in PHP.

Hast Du ein Buch zu C/C++, machst Du das als Hobby oder wie kommst Du dazu ?
--
Reden ist Schweigen und Silber ist Gold.

Dieser Post wurde am 25.01.2007 um 21:04 Uhr von stephanw editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
25.01.2007, 21:50 Uhr
tobias
hmm....


ich mach c++ nur als hobby, und ich habe 6 bücher...

1: c/c++ Das komplette Programmierwissen für Studium und Job von Dirk Louis
2: c++ kruz und gut von O´Reilly
3: stl kurz und gut von O´Reilly
4: C++ Einstieg für Anspruchsvolle von André Willms
5: C++ Objektorientiertes Programmieren von Anfang an von Helmut Erlenkötter
6: C++ von A bis Z Das Umfassende Handbuch von Jürgen Wolf (mit dem lerne ich auch, weil mir die beispiele besser gefallen, kompilier gut erklärt wird, alle listings auf cd sind und das GUI sehr sehr gut ist... *bisschen angeben will - Kann schon eingabefelder machen/Menüs/Toolbar/statusbar*)

edit: warum ich eigentlich c++ lerne ist, weil ich es richtig schick finde so ne windows anwendung zu schreiben und ich weis nicht wie ich das genau beschreiben soll.. Das kickt mich einfach wenn ich vor dem Pc hocke, schön was schreibe, es funktioniert... Das ist sozusagen meine Befriedigung nach dem ganzen stress am Tag.
--
Danke

Dieser Post wurde am 25.01.2007 um 22:01 Uhr von tobias editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
26.01.2007, 01:16 Uhr
0xdeadbeef
Gott
(Operator)


Also, als einfaches Beispiel, ein Projekt mit vier Dateien:

C++:
// foo.h

// Include-Guards, um doppelte includes zu verhindern
#ifndef INCLUDED_FOO_H
#define INCLUDED_FOO_H

class foo {
public:
  void bar() const;
  void baz() const;
};

#endif




C++:
// foo_bar.cpp

#include "foo.h"

#include <iostream>

void foo::bar() const {
  std::cout << "foo::bar" << std::endl;
}





C++:
// foo_baz.cpp

#include "foo.h"

#include <iostream>

void foo::baz() const {
  std::cout << "foo::baz" << std::endl;
}




C++:
// main.cpp

#include "foo.h"

int main() {
  foo qux;

  qux.bar();
  qux.baz();
}


Je nach Compiler und IDE sieht die Projekteinbindung dann unterschiedlich aus, in den meisten Fällen wird es da ne Aufteilung in Header- und Quellcode-Dateien geben. Sämtliche .cpp-Dateien kommen zu den Quellcode-Dateien, die .h zu den Header-Dateien. Dann auf "Kompilieren" klicken. Auf der Kommandozeile mit g++ sähe das so aus ($ als Prompt-Zeichen für die Konsole):

Shell:

$ g++ -c foo_bar.cpp
$ g++ -c foo_baz.cpp
$ g++ -c main.cpp
$ g++ -o programm foo_bar.o foo_baz.o main.o


Die .o-Dinger sind Objektdateien, in die die Quellcode-Dateien übersetzt werden, die werden dann vom Linker zur executable (oder, in manchen Fällen, Bibliothek) zusammengelinkt.

(Kürzer geht da auch)

Shell:

$ g++ -o programm foo_bar.cpp foo_baz.cpp main.cpp


(...aber das würde den Mechanismus ja nicht erklären)

Vielleicht lesenswert: www.eng.hawaii.edu/Tutor/Make/

Das ist zwar C-bezogen, aber der Mechanismus ist in C++ im Grunde derselbe. Jedenfalls, solange du nicht mit templates arbeitest, bei denen ist es...naja, im Grunde dasselbe, weil templates in ihrer Gesamtheit Deklarationen sind, aber es ist trotzdem etwas unintuitiv, wenn mans das erste mal macht.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 26.01.2007 um 01:19 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
26.01.2007, 07:51 Uhr
stephanw
localhorst


@tobias: schön, wenn Du Spaß daran hast ! Ich habe gerade noch diesen Beitrag hier gelesen (von Dir) www.fun-soft.de/showtopic.php?threadid=17225 . Du musst doch den zweiten Schritt nicht vor dem ersten machen ! Es ist nun einmal leider so, dass zur C/C++ Programmierung nicht nur die Sprache gehört, sonder auch noch einiger Kram drumherum wie Compiler, Linker, Quellcodeaufteilung etc., die sich z.T. deutlich von anderen Sprachen und Skriptsprachen unterscheiden. Ich würde erstmal so anfangen, wie es in dem verlinkten Beitrag empfohlen wurde und die GUI in ein paar Wochen machen, wenn Du schon etwas lockerer mit C++ umgehen kannst.
Wenn Du das nicht willst, dann mach es eben wie Du denkst.

Nebenbei: wenn Du einfach nur Fenster-Oberflächen für WIndows entwickeln willst, gibt es vielleicht auch einfachere Möglichkeiten als C++. (C#, VisualBasic, ...). Oder Skriptsprachen, für die es GUI-Toolkits gibt (Python, Ruby, ...). Gibt es sowas nicht sogar für PHP ?
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: