Hallo zusammen!
Kurz und bündig gesagt: Ich stehe gerade auf dem Schlauch! Ich arbeite gerade an einem etwas grösseren Projekt, bei dem ich auch gerade ein DLL-Interface aufbaue, eigentlich nichts Neues oder Ungewohntes. Allerdings stehe ich gerade vor einigen Fehlern, die mir nicht wirklich klar werden wollen!
Ich habe eine Klasse, die das Singleton-Prinzip realisieren soll:
Nun habe ich zum Beispiel die Klasse CLog, welche von Single erbt und auch als __declspec(dllexport) deklariert ist. In der Datei CLog.cpp ist auch entsprechend der Singleton mit initSing(CLog) initialisiert worden.
Wenn ich nun testhalber eine DLL erstelle, die die Common.h (da stehen alle includes des Projekts drin) includiert und die erstellte Library als Abhängigkeit verwendet, so erhalte ich folgenden Fehler:
Ich komm irgendwie nicht mehr dahinter, was genau das Problem ist. Wäre nett, wenn mir jemand behilflich sein könnte
Gruss und Dank
Cromon
Kurz und bündig gesagt: Ich stehe gerade auf dem Schlauch! Ich arbeite gerade an einem etwas grösseren Projekt, bei dem ich auch gerade ein DLL-Interface aufbaue, eigentlich nichts Neues oder Ungewohntes. Allerdings stehe ich gerade vor einigen Fehlern, die mir nicht wirklich klar werden wollen!
Ich habe eine Klasse, die das Singleton-Prinzip realisieren soll:
Code:
#ifndef _SINGLE_H
#define _SINGLE_H
#define initSing( type ) \
template <> type * Single<type>::inst = 0
template<typename T>
class __declspec(dllexport) Single
{
public:
static T* inst;
static T* getSingle()
{
if(!inst)
throw("inst == 0 - tritt auf, wenn der Konstruktor noch nicht aufgerufen wurde!");
return inst;
}
Single()
{
if(inst)
throw("inst != 0 - Konstruktor einer Single-Klasse nur einmal aufrufen!!");
inst = (T*)this;
}
};
#endif
Nun habe ich zum Beispiel die Klasse CLog, welche von Single erbt und auch als __declspec(dllexport) deklariert ist. In der Datei CLog.cpp ist auch entsprechend der Singleton mit initSing(CLog) initialisiert worden.
Wenn ich nun testhalber eine DLL erstelle, die die Common.h (da stehen alle includes des Projekts drin) includiert und die erstellte Library als Abhängigkeit verwendet, so erhalte ich folgenden Fehler:
Nicht aufgelöstes externes Symbol ""public: static class CLog * Single<class CLog>::inst" (?inst@?$Single@VCLog@@@@2PAVCLog@@A)"
Ich komm irgendwie nicht mehr dahinter, was genau das Problem ist. Wäre nett, wenn mir jemand behilflich sein könnte

Gruss und Dank
Cromon