Visual Studio プロジェクトで、複数の cpp ファイルにまたがるいくつかの変数を編集してアクセスする必要があります。そこで、次のように、必要なすべての変数を含む名前空間を持つヘッダー ファイルを作成しました。
namespace windowdimension{
TCHAR openwindows[20][180];
int winnum = 0;
int windowleft = 0;
int windowright = 1360;
INT windowtop = 0;
INT windowbottom = 768;
LONG leftarray[20];
LONG rightarray[20];
LONG toparray[20];
LONG bottomarray[20];
}
ただし、#include
このヘッダー ファイルを 2 つのソース ファイルに含めると、このリンカー エラー 2005 が表示され、パラメーターが他の obj で既に定義されているというメッセージが表示されます。
同じエラーの他の質問を参照すると、ここでそれを知りました
関数定義は 1 回しか表示できません。.h ファイルを #include するすべての .cpp ファイルは、関数の別のコピーを生成します。
しかし、それは名前空間変数にも当てはまりますか? もしそうなら、複数のソースファイルで特定の変数へのアクセスを保証するにはどうすればよいでしょうか?