【发布时间】:2013-07-27 20:04:31
【问题描述】:
我在 Visual Studio 中为我的控制台应用程序创建了一个 DLL。 在我的 DLL 中,我有一个名为 Dialog_MainMenu 的类,其中有一个 *.cpp 文件和一个 *.h 文件。
以下错误消息:
错误 9 错误 LNK2001:无法解析的外部符号 "__declspec(dllimport) 公共:静态枚举 Dialog_MainMenu::GAME_STATES Dialog_MainMenu::CurrentGameState" (_imp?CurrentGameState@Dialog_MainMenu@@2W4GAME_STATES@1@A) C:\Users\Kevin\Desktop\c++ 项目\development_testing\The Intense Adventure\Dialogs\Dialog_MainMenu.obj 对话框
我有点不明白。只有当我在头文件中向原型添加枚举时才会发生这种情况。
头文件:
#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;
如果有任何帮助或至少一些建议,我将不胜感激,我可以在其中了解有关此问题的更多信息。
【问题讨论】:
-
你引用了.lib文件吗?
-
我确实做到了。我什至检查了三次。
-
您可以添加用于您的问题的链接命令吗?
-
您的意思是附加包含目录吗?我不太明白你的意思。我对 C++ 有点陌生。
-
不,我的意思是 IDE 调用以在您的问题中产生该链接错误的完整链接器命令。它应该在构建日志中的某个位置。
标签: c++ dll enums console-application dllimport