で私は、このクラスK
を含む共有ライブラリ(DLL)を作成したいと思います静的クラスメンバーの共有ライブラリ
class K {
static int a;
static int b;
}
のようなクラスを持っています。ライブラリでコンパイルされたcppファイルでは、静的変数をインスタンス化するために
int K::a = 0;
int K::b = 0;
と呼びます。 DLLはエラーなくコンパイルされますが、ライブラリを使用すると、メンバーK::a
およびK::b
の未解決の外部シンボルエラーが発生します。私はそれを使用するメインプログラムでは、私はクラスK
の宣言と同じヘッダーが含まれ、唯一の違いは、ライブラリのために、私はclass __declspec(dllexport) K { ... }
を使用して、メインプログラムおそらくclass K { ... }
のために、私はより多くのをやっているということです1つの間違いよりも私の質問は、どのようにすることができます
- ライブラリ内の静的メンバークラスを共有するようにリンカーに指示しますか?
- メインプログラムのライブラリでインスタンス化された静的クラスメンバーを使用しますか?
PS。私はVisual Studio 2008を使用しています...