modular
FMFlash 24.05.2002 - 13:54 505 6
FMFlash
tranceCoder
|
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
|
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"
|
#ifndef includes #define includes includefiles hier #endif so verhinderst du eklige probleme mfg cy
|
FMFlash
tranceCoder
|
in der .h datei: extern struct a ..... ; x[1000]; und dann in einer .cpp struct a ..... ; x[1000]; haut nicht hin 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
|
Ringding
Pilot
|
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
|
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
|
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?
|