modular

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/modular_35249/page_1 - zur Vollversion wechseln!


FMFlash schrieb am 24.05.2002 um 13:54

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 schrieb am 24.05.2002 um 14:47

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 schrieb am 24.05.2002 um 18:32

#ifndef includes
#define includes

includefiles hier

#endif

so verhinderst du eklige probleme ;)

mfg cy


FMFlash schrieb am 24.05.2002 um 19:52

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 schrieb am 25.05.2002 um 10:19

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.


FMFlash schrieb am 25.05.2002 um 13:35

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 schrieb am 25.05.2002 um 14:46

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?




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025