[C++] Eigene Funktion immer im Compiler

Bumbbleman

Erfahrenes Mitglied
Hallo zusammen,
diesmal hab ich eine Frage zum Compiler:
(Ich benutze den C++ BuilderX von Borland)
Ich habe jetzt eine Funktion geschrieben, die ich ziemlich oft auch in anderen Projekten brauche. Ich könnte ja die header Datei immer bei den anderen Projekten hinzufügen aber kann man diese Funktion nicht irgendwie in den Compiler einbringen.
Dass man die so wie "printf()" nutzen kann?
Einfach eine Datei Includieren und fertig?

mfg
 
Hallo,

was verstehst du unter "einfach inkludieren"? Die Bekanntmachung einer Funktion durch die Inkludierung eines Headers ist nur die halbe Miete. Dies dient eigtl. nur dazu um den Compiler zu befriedigen. Um die Funktion die sich hinter dem Funktionssymbol verbirgt während der Laufzeit ausführen zu können muss der Linker die Definition der Funktion zum Programm hinzubinden. Diese liegt meist als (vorkompilierter) Objektcode in Bibliothen vor. "printf" bspw. wird vom Compiler meist defaultmäßig zu deinem Programm hinzugebunden. Du bekommst von diesem Prozess deshalb nichts mit, weil diese Art von Bibliotheken schon vom Compiler mitgeliefert werden und als Standard fungieren sollen.

Wenn du deine Funktion(en) in anderen Projekten nutzen willst, musst du also eine Bibliothek erstellen und diese dann zu deinem Projekten hinzubinden. Wie das geht sollte in der Compilerdoku nachlesbar sein, oder du wartest bis sich hier die Borland-Experten melden :)

Gruß,
RedWing
 
Hallo,

Ich hab mal in der Compilerdoku nach geschaut und auch etwas gegooglet aber ich
schaff es nicht meine Funktion in eine Dll zu packen.
Hoffentlich könnt ihr mir helfen.

mfg
 
Hallo,
egal, sei es Borland, oder nicht. Der kompiler nuzt Bibliotheken (*.dll), in denen Funktionen, wie std::printf() verankert sind.

Du könntest, natürlich deine Funktion auch immer mit kopieren in die Projektmappe (*.h datei, in der du deinen Prototypen auch gleich ausformulierst), dann includest du das und schon stehts dir zu verfühung, wäre aber zugegeben umständlich.

Deshalb packst du deine Funktion(en) in eine myfuktion.dll. Wie genau du das mit Borland machst kan auch ich dir leider nicht sagen, ich nutze MS 2005 Studio (gibt es auch als kostenlose express version;))
 
Danke für eure Hilfe.
Ich hab es jetzt hin bekommen.
Ich hab mir noch mal genaustens die Compilerdoku durch gelesen und es dann mit ein bisschen experimentieren endlich verstanden und hinbekommen.

mfg
 
Zurück