dllのなかの、static 変数を持つクラスについての質問

[戻る]
f_take2000 2004/01/08(木) 16:14:23
dllのなかに、static 変数を持つクラスを定義して、そのクラスを、dllの外側で、使おうと
すると、リンク時に、参照できないというエラーが出ます。
static  変数の初期化をするときに、なんらかの処理がいるのでしょうか?

class は、以下のような感じで、宣言していて、

class AFX_EXT_CLASS A
{
private:
  static int a;
}
static 変数は、以下のように、初期化しています。

int A::a = 0;

環境は、windows2000 VC++6.0です。
よろしくおねがいします。

2004/01/08(木) 16:34:47
カンで答えてみます。

private を protected とか public にしたらエラーが解消されたりして。

dairygoods 2004/01/08(木) 17:49:28
ヘッダーで(つまり、EXPORT側とIMPORT側の両方で)
明示的な宣言が必要だったような気がします。
class AFX_EXT_CLASS A
{
 ...
};
int AFX_EXT_CLASS A::a;  // これ

f_take2000 2004/01/08(木) 18:23:30
[[解決]]
返答ありがとうございます。
dairygoods サンの方法でうまくいきました。
ありがとうございました。

古いスレッドには追加発言できません。