我有一个名为AquaMain.cpp的文件
#include "AquaGame.h"
using namespace Aqua;
#ifdef _WIN32
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
AquaGame::get()->init();
return AquaGame::get()->run();
}
#endif
该文件在静态库中。
当我尝试编译使用此静态库的项目时,构建失败并显示此错误
1> MSVCRTD.lib(crtexew.obj):错误LNK2019:函数__tmainCRTStartup中引用的未解析的外部符号WinMain @ 16
AquaMain.cpp文件没有被编译,我不知道为什么。
如果我将WinMain函数移至可执行项目,则该函数将被编译且一切正常,但我希望WinMain位于静态库中。
有任何想法吗?
最佳答案
您需要将WinMain声明为extern "C"
extern "C" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
AquaGame::get()->init();
return AquaGame::get()->run();
}
关于c++ - 包含WinMain的Cpp文件未编译,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14609339/