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