Я объявляю синглтона на расширение DLL MFC, например:Singleton MFC расширение DLL
//header file: SingleTon.h class AFX_EXT_CLASS CMySingleton { public: static CMySingleton* Instance() { if(!singleton) singleton = new CMySingleton(); return singleton; } int a; // Other non-static member functions private: CMySingleton() {}; // Private constructor CMySingleton(const CMySingleton&); // Prevent copy-construction CMySingleton& operator=(const CMySingleton&); // Prevent assignment virtual ~CMySingleton() {}; static CMySingleton* singleton; }; And in a cpp file I code the following line: CMySingleton* CMySingleton::singleton = NULL;
Код 2:
CMySingleton *a; a = CMySingleton::Instance();
Проблема заключается в том, когда я код "код 2" в регулярном Dll, все работает отлично, но когда я код «код 2» в другом расширение MFC DLL выдает ошибку:
unresolved external symbol "private: static class CMySingleton* CMySingleton::singleton" ([email protected]@@[email protected])
я правильно проверить все dependenci с помощью зависимостей проекта.
Любая идея?
Отличный ответ !!. –