"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

modular

FMFlash 24.05.2002 - 13:54 505 6
Posts

FMFlash

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
ich möchte mein prog wegen der wachsenden textmenge in mehreren .cpp-dateien unterbringen um die übersicht zu behalten, nur leider hab ich keine ahnung wie ich den linker dazu bring das richtig zusammenzubasteln (visual c++ 6)
wenn ich versuch zu compiliern findet zb das modul das für file i/o zuständig is die globalen objekte nicht usw ...

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
1. Schritt: Alle Module in .h und .cpp aufteilen. Also alles, was von anderen Modulen gesehen bzw. verwendet werden soll, in den Header.

2. Schritt: Benötigte .h Files in die Module #include n.

Der Rest geht eh von allein. Bei globalen Variablen musst du halt aufpassen. Die müssen im .h File als extern deklariert sein und in EINEM der .cpp instantiiert (im Normalfall einfach die Zeile aus dem .h kopieren und das extern weglassen)

bBU.CyTrobIc

#include "billrulz.h"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
#ifndef includes
#define includes

includefiles hier

#endif

so verhinderst du eklige probleme ;)

mfg cy

FMFlash

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
in der .h datei:
extern struct a ..... ; x[1000];
und dann in einer .cpp
struct a ..... ; x[1000];
haut nicht hin :mad:

item_handling.obj : error LNK2005: "struct SProdukt * artikel" (?artikel@@3PAUSProdukt@@A) bereits in fileIO.obj definiert
main.obj : error LNK2005: "struct SProdukt * artikel" (?artikel@@3PAUSProdukt@@A) bereits in fileIO.obj definiert
Release/DB.exe : fatal error LNK1169: Ein oder mehrere mehrfach definierte Symbole gefunden

entweder findet ers mehrfach oder gibt 100 fehlermeldungen aus weils nicht da is :mad: :mad:

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Ja das x ist ja auch doppelt definiert. Ich weiß nicht, was anstelle der Punkte noch kommen soll, aber anscheinend ist es nur eine struct Deklaration. Die belegt ja keinen Speicherplatz und muss daher nicht extern deklariert werden. Das x aber sehr wohl.

Was soll x überhaupt sein? Ein Array von 1000 ints? War wohl nicht so gemeint, oder? Hab gar nicht gewusst, dass das erlaubt ist.
Bearbeitet von Ringding am 25.05.2002, 10:21

FMFlash

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
Zitat von Ringding
Was soll x überhaupt sein? Ein Array von 1000 ints? War wohl nicht so gemeint, oder? Hab gar nicht gewusst, dass das erlaubt ist.

x is ein array von 1000 objekten vom typ struct y

ein 1, 2, 3, 4 ... n-dimensionales array von ints is natürlich möglich, darum gehts hier aber nicht

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Zitat von FMFlash
x is ein array von 1000 objekten vom typ struct y

Das soll es vielleicht sein, ist es aber keineswegs nach der oben angegebenen Deklaration. Was hat da der Strichpunkt vor dem x zu suchen?
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz