私はDLLに取り組んでいます。これは多くの時間が他.h/.cpp
から、私はそれが含まれ、私のIGlobal.h
です:私は、DLLをコンパイルするときDLL全体のグローバルな構造体ですか?
#ifndef _IGLOBALS_
#define _IGLOBALS_
struct IGlobalBitmaps {
IBitmap mKnobGeneral;
IBitmap mButtonScore;
IBitmap mButtonRandom;
IBitmap mButtonLoad;
IBitmap mButtonClear;
IBitmap mButtonShape;
IBitmap mSwitchGeneral;
};
IGlobalBitmaps gGlobalBitmaps;
#endif // !_IGLOBALS_
、それはLNK1169一つ以上の多重定義されたシンボルはを発見したと言います。
どうすればよいですか?私はconst
(一部のIBitmap
メソッドはconstではないので)とstatic
(そのDLL以降、それは後で苦痛になる)のどちらも使用できません。
[/フォース(https://msdn.microsoft.com/en-us/library/xttf5w7w.aspx)または/ FORCE:MULTIPLE]オプションは、このエラーを上書きします。 – Skywrath
ヘッダーからインスタンス化するべきではありません。それでも、DLLに格納された変数を使用する場合は、エクスポートされたシンボル名を持つように '__declspec(dllexport)'を宣言します。 –