他のプロジェクトで使用できるC++でDLLを作成しようとしています。C++ DLLの作成:静的変数の初期化の問題
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
template <typename T, typename C>
class MYDLL_API MyClass
{
private:
static C *variable;
//...
};
MyClass.cpp:
#include "stdafx.h"
#include "MyClass.h"
template <typename T, typename C>
C *MyClass<T, C>::variable= NULL;
そして、私はそれをコンパイルするとき、私は「エラーLNK2001取得: 私のクラスの一つは、この
MyClass.hように見える未解決の外部シンボルを..この変数のために "。" DLLを作成しようとする前に、このコードは完全に機能しています...
この問題を解決してください。
コンパイラのコマンドライン(通常は '-DMYDLL_EXPORTS')でMYDLL_EXPORTSを定義しましたか? – vanza
私はより多くの文脈が必要です。 DLLをコンパイルして、同じコンパイラを使用してDLLにリンクしていますか?あなたはCコードとC++コードをインターフェースしていますか? – Michael