![]() |
Header Datei Problem [C++]
HI leute ich hab n kleines problem.
ich habe ein projekt für das ich genau eine Headerdatei angelegt habe. Diese Headerdatei enthält funktionen und klassen. Wenn ich versuche diese zu compilieren dann bekomme ich folgenden error.
Code:
Gibt es eine möglichkeit die Header datei auch in mehreren source files zu verwenden?
[BCC32 Error] uPM_Threads.cpp(20): E2238 Multiple declaration for 'PhPDocument'
[BCC32 Error] uPM_Threads.cpp(19): E2344 Earlier declaration of 'PhPDocument' [BCC32 Error] uPM_Threads.cpp(36): E2171 Body has already been defined for function 'PhPDocument::PhPDocument()' [BCC32 Error] uPM_Threads.cpp(41): E2171 Body has already been defined for function 'PhPDocument::PhPDocument(AnsiString)' [BCC32 Error] uPM_Threads.cpp(47): E2171 Body has already been defined for function '~PhPDocument::PhPDocument()' [BCC32 Error] uPM_Threads.cpp(53): E2171 Body has already been defined for function 'PhPDocument::SetFileNameAndPath(AnsiString)' [BCC32 Error] uPM_Threads.cpp(63): E2238 Multiple declaration for 'XInfo' [BCC32 Error] uPM_Threads.cpp(62): E2344 Earlier declaration of 'XInfo' [BCC32 Error] uPM_Threads.cpp(71): E2171 Body has already been defined for function 'XamppInfo::Get_Info(AnsiString *,AnsiString *,AnsiString *,AnsiString *)' [BCC32 Error] uPM_Threads.cpp(102): E2171 Body has already been defined for function 'XInfo::Get_X_Install_Dir()' |
Re: Header Datei Problem [C++]
Ist zwar keine direkte Lösung, aber du kannst ja einen Wert in der Header-Datei definieren und entsprechend reagieren. Weiß aber nicht, wie es in C++ mit bedingter Kompilierung ausschaut, in Delphi könnte ich mir aber sowas vorstellen:
Delphi-Quellcode:
Das würde dann so ablaufen, dass er beim ersten Aufruf die Funktionen deklariert und dann den Wert ALREADY_INCLUDED definiert. Beim nächsten einbinden der Inc-Datei (warum auch immer ...) würde der Deklarationsteil einfach nicht mitkompiliert.
MyHeader.inc
{$IF NOT Defined (ALREADY_INCLUDED)} function ... procedure ... {$IFEND} {$DEFINE ALREADY_INCLUDED} |
Re: Header Datei Problem [C++]
Mache einfach folgendes (Nuclear-Ping hat es im Prinzip schon gesagt):
Code:
Allerdings werden die genannten Fehler vermutlich nicht dadurch verursacht, daß du die Headerdatei in mehreren Quelldateien verwendest - da jede einzeln kompiliert wird, ist das kein Problem -, sondern sie wird offenbar innerhalb eines Source-Datei indirekt zweimal eingebunden. Dagegen hilft obige Methode recht gut.
// headerdatei.hpp
#ifndef _IRGENDEIN_NAME_FUER_MEINE_HEADERDATEI_HPP #define _IRGENDEIN_NAME_FUER_MEINE_HEADERDATEI_HPP ... // hier den wesentlichen Inhalt der Headerdatei einfügen #endif |
Re: Header Datei Problem [C++]
das hab ich auch schon gemacht
|
Re: Header Datei Problem [C++]
Zitat:
das Problem dürften die Funktionen sein. Hier musst Du darauf achten, dass die nur deklariert werden (abschließendes ;, kein { ...}). Liegt die Implementierung in der Header-Datei vor, kommt es zu dem Problem dass Du hast. Also einfach in ein .cpp-File auslagern und dies beim Linken mit berücksichtigen. Gruß Der Unwissende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz