MFC アプリケーション AVT_testapp があり、ヘッダー ファイル (AVT_testappDlg.h) で、グローバルにするために、すべての関数、クラスなどの外部に変数を作成しようとしています。ただし、これを実行しようとすると(たとえば、試してみるとint x = 7
)、エラーが発生します。
1>AVT_testappDlg.obj : error LNK2005: "int x" (?x@@3HA) already defined in
AVT_testapp.obj
1>..\..\bin\x64\Debug\AVT_testapp.exe : fatal error LNK1169: one or more
multiply defined symbols found
私がグーグルで見つけたものはすべて、「ヘッダーガードを追加するだけ」と言っています。 AVT_testappDlg には 6 つの #include があり、それぞれにヘッダー ガードがあります。
グローバル変数を作成するときにこれらのエラーを引き起こしている可能性があるものは他にありますか?
編集:これが私のヘッダーファイルの始まりです。
#pragma once
#include "../../src/CoreUtils/nierr.h"
#include "..\..\src\CoreUtils\StringHelpers.h" //includes windows.h
#include "afxwin.h"
#include "afxcmn.h"
#include "IFrameObserver.h"
#include "c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\GdiPlusHeaders.h"
//#include <fstream>
//#include <windows.h>
int x = 7;
using namespace AVT::VmbAPI;
//////////////////////////////////////////////////////////////////////////
////////// MyObserver class ///////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
class MyObserver : public IFrameObserver
{
private:
MyObserver( MyObserver& );
MyObserver& operator=( const MyObserver& );
public:
VmbUchar_t* imageData;
//...
//...
//...
//...
//that's the end of the relevant stuff