我一直在关注本教程,学习一些DirectX编程:http://www.rastertek.com/dx11tut02.html
我已经到了最后,尝试构建并在编译时抛出了这个错误:
MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
所以,我广泛搜索试图寻找解决方案,我尝试过的内容包括:
- 将入口点设置为WinMainCRTStartup
,wWinMainCRTStartup
和mainCRTStartup
(可能还有其他人)
- 确保子系统设置为Windows而不是控制台,甚至尝试将其设置为“控制台”和“未设置”以防万一。
- 为包含main方法的文件添加现有项目。
- 下载教程中提供的代码,以确保它不是我的编码错误,仍然无法正常工作。
现在有趣的一点:
我尝试将教程代码下载到我的桌面(我通常无法访问,远离),其中包含Visual C ++ Express 2010的副本(我的笔记本电脑正在运行Visual Studio 2010 Professional)。它在桌面上工作得非常好,第一次,不必更改单个设置。
所以问题必须是在我的笔记本电脑上安装VS,或者与我的笔记本电脑有关。
我已经尝试将所有VS设置重置为默认设置,卸载VS,执行修复安装,安装Visual C ++ Express,安装Windows SDK v7.1,我能想到的一切,但仍然无效。
为了清楚起见,我用于主要的代码是:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pScmdline, int iCmdshow)
请帮助,我花了两天时间搞乱这个并没有得到任何地方,我正试图完全重新安装Windows。
答案 0 :(得分:2)
我今天遇到了类似的问题。
我的main.cpp
未正确包含在构建中。
转到解决方案资源管理器,右键单击该文件并选择“属性”。
确保
答案 1 :(得分:1)
选择项目为Win32控制台而不是Win32窗口,这就是链接器无法将我的winmain识别为主程序的原因。
答案 2 :(得分:0)
如果您正在使用SDL(简单DirectMedia层库),您还需要链接SDL2main.lib,而不仅仅是针对SDL2.lib,因为SDL重新定义了函数main
,顺便说一下,它需要如int main(int argc, char* args[])
中那样完整拼写。