JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=bb74998f0ec8a82b845bc5e2c8366019Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

namespace und mein nervliches Ende...

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 21.10.2005, 20:22    Titel: namespace und mein nervliches Ende... Antworten mit Zitat

Ich will in ein Project namespace hinzufügen. Nichts wildes eigentlich.
Hier mal der Code der .h
CPP:
#if !defined(__ceengine_h__)
#define __ceengine_h__

#pragma once
#pragma warning(disable : 4251)
#pragma warning(disable : 4075)
#pragma warning(disable : 4005)

#ifndef __CEDLL
#define CEDLL __declspec(dllimport)
#else
#define CEDLL __declspec(dllexport)
#endif //ExportDLL
//-------------------------------------------------------------------------------------------------
// INCLUDES
//-------------------------------------------------------------------------------------------------
#include "include/CEDefines.h"
#include "include/CELog.h"

//-------------------------------------------------------------------------------------------------
// LOAD LIBRARIES
//-------------------------------------------------------------------------------------------------
#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9d.lib")
#pragma comment(lib,"dinput8.lib")
#pragma comment(lib,"dsound.lib")
#pragma comment(lib,"dxerr9.lib")
#pragma comment(lib,"dxguid.lib")

//-------------------------------------------------------------------------------------------------
// GLOBALS
//-------------------------------------------------------------------------------------------------
namespace Core
{
   int      g_iScrSizeX   = 0;
   int      g_iScrSizeY   = 0;
   bool   g_bLogReady   = false;
};
//-------------------------------------------------------------------------------------------------
// FUNCTIONS
//-------------------------------------------------------------------------------------------------
namespace Core
{
   CEDLL ceResult ceInitEngine(HWND hWnd,int iScrX, int iScrY, D3DFORMAT dFormat, bool bWindowed,int iAdapter, char* cLogfile);
};
#endif

Das ganze Projekt wird auch fehlerfrei kompiliert.

Nutze ich jetzt diese .h und die daraus resultierende Lib/Dll in einem anderen Projekt und lasse das laufen bekomm ich diese Fehlermeldung:
Code:

ceTechDemo error LNK2005: "bool Core::g_bLogReady" (?g_bLogReady@Core@@3_NA) bereits in ceTechDemo.obj definiert
ceTechDemo error LNK2005: "int Core::g_iScrSizeY" (?g_iScrSizeY@Core@@3HA) bereits in ceTechDemo.obj definiert
ceTechDemo error LNK2005: "int Core::g_iScrSizeX" (?g_iScrSizeX@Core@@3HA) bereits in ceTechDemo.obj definiert
ceTechDemo fatal error LNK1169: Ein oder mehrere mehrfach definierte Symbole gefunden

Kann mir jemand erklären wo der Mist herkommt?

_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 21.10.2005, 20:33    Titel: Antworten mit Zitat

variablen niemals in headern definieren! nur konstanten.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 21.10.2005, 20:46    Titel: Antworten mit Zitat

na das muss einem dummen menschen doch wirklich gesagt werden... Smile

Dank dir!!
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Slider|SD
Mini JLI'ler


Alter: 44
Anmeldedatum: 20.10.2005
Beiträge: 18
Wohnort: Gilching
Medaillen: Keine

BeitragVerfasst am: 21.10.2005, 22:11    Titel: Antworten mit Zitat

Nur noch zur Anmerkung:

das ist ein gutes Beispiel, um sich den Unterschied zwischen Deklarieren und Definierieren klar zu machen...

In Header Files werden Variablen nur deklariert, niemals aber definiert... das geschieht in den Header Files, z.B. im Konstruktor...

Gruß
Slider
_________________
Stefan Schwarzbach
Lead Programmer & Geschäftsführer
Grotesque - Die geniale Mischung aus Gothic , Final Fantasy und Monkey Island
Silent Dreams - We Create Dreams
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 22.10.2005, 09:15    Titel: Antworten mit Zitat

Slider|SD
In Headern werden auch nicht Variablen deklariert. Höchstens mit extern exportiert, das war aber auch schon alles. Strukturen und Klassen sind ein ganz anderes Themengebiet, es geht hier nur um Variablen, sonst nichts.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 22.10.2005, 14:34    Titel: Antworten mit Zitat

@Patrick: Slider hat sich evtl etwas schlecht ausgedrückt, aber:

Slider|SD hat Folgendes geschrieben:
Nur noch zur Anmerkung:
In Header Files werden Variablen nur deklariert, niemals aber definiert... das geschieht in den Header Files, z.B. im Konstruktor...


Wink
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum