Я создал DLL для своего консольного приложения в Visual Studio. В моей DLL у меня есть класс с именем Dialog_MainMenu с файлом * .cpp и * .h.Неразрешенный внешний символ _declspec (dllimport)
следующее сообщение об ошибке:
Error 9 error LNK2001: unresolved external symbol "__declspec(dllimport) public: static enum Dialog_MainMenu::GAME_STATES Dialog_MainMenu::CurrentGameState" (_imp[email protected][email protected]@[email protected]@A) C:\Users\Kevin\Desktop\c++ projects\development_testing\The Intense Adventure\Dialogs\Dialog_MainMenu.obj Dialogs
Что я вроде не понимаю. Это произошло только тогда, когда я добавил перечисление в свой прототип в моем файле заголовка.
Заголовочный файл:
#ifdef DIALOG_MAINMENU_EXPORTS
#define DIALOG_MAINMENU_API __declspec(dllexport)
#else
#define DIALOG_MAINMENU_API __declspec(dllimport)
#endif
class Dialog_MainMenu {
public:
static DIALOG_MAINMENU_API enum GAME_STATES {
MAINMENU, GAME, OPTIONS, CREDITS, QUIT
};
static DIALOG_MAINMENU_API GAME_STATES CurrentGameState;
DIALOG_MAINMENU_API GAME_STATES GetState();
};
(Не знаю, если проблема лежит здесь, так что я просто добавить его) CPP файл в общем:
//Get state
Dialog_MainMenu::GAME_STATES Dialog_MainMenu::GetState() {
// Code..
}
//Switching state
Dialog_MainMenu::CurrentGameState = Dialog_MainMenu::GAME_STATES::GAME;
I было бы очень полезно, любая помощь или по крайней мере некоторые советы, где я могу узнать больше об этой проблеме.
Вы ссылаетесь на файл .lib? –
я уверенный сделал. Я даже проверял тройку. –
Можете ли вы добавить ссылку, используемую для вашего вопроса? – greatwolf