AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Header Datei Problem [C++]

Ein Thema von Mark90 · begonnen am 17. Okt 2007 · letzter Beitrag vom 18. Okt 2007
Antwort Antwort
Mark90
(Gast)

n/a Beiträge
 
#1

Header Datei Problem [C++]

  Alt 17. Okt 2007, 17:46
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:
[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()'
Gibt es eine möglichkeit die Header datei auch in mehreren source files zu verwenden?
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#2

Re: Header Datei Problem [C++]

  Alt 17. Okt 2007, 17:57
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:
MyHeader.inc

{$IF NOT Defined (ALREADY_INCLUDED)}

  function ...
  procedure ...
{$IFEND}

{$DEFINE ALREADY_INCLUDED}
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.
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#3

Re: Header Datei Problem [C++]

  Alt 18. Okt 2007, 10:12
Mache einfach folgendes (Nuclear-Ping hat es im Prinzip schon gesagt):

Code:
  // 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
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.
Moritz
  Mit Zitat antworten Zitat
Mark90
(Gast)

n/a Beiträge
 
#4

Re: Header Datei Problem [C++]

  Alt 18. Okt 2007, 14:00
das hab ich auch schon gemacht
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#5

Re: Header Datei Problem [C++]

  Alt 18. Okt 2007, 15:25
Zitat von Mark90:
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.
...

Gibt es eine möglichkeit die Header datei auch in mehreren source files zu verwenden?
Hi,
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz