我删除了IDE生成的_tmain()
方法,因为在添加WinMain
条目后我发现没有任何意义上有两个入口点。是的,这是我的第一个C ++应用程序,我是一个新手,但请你好。
这就是我得到的全部内容:
// Included headers:
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
// Shortened namespaces:
using namespace std;
// The main entry of the application:
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
MessageBox( NULL, L"Hello World!", L"Just another Hello World program!", MB_ICONEXCLAMATION | MB_OK );
return 0;
}
// End of file.
当我尝试构建并运行时,我收到此错误:
错误LNK2019:函数___ tmainCRTStartup中引用了未解析的外部符号_main
错误LNK1120:1个未解析的外部
我意识到缺少入口点,但是我可以在哪里设置WinMain
作为入口点?我只是看看项目本身的属性,什么也没发现。
请注意,我已将该项目作为控制台应用程序启动,但现在我正在尝试将其转换为regualr Windows应用程序。
感谢。
答案 0 :(得分:2)
您需要将子系统更改为Windows。
答案 1 :(得分:1)
项目 - &gt;属性 - &gt;链接器 - &gt;系统更改子系统到/ SUBSYSTEM:WINDOWS
如果你有进一步的麻烦,那么重新开始,选择Win32 Project而不是Win32控制台。
答案 2 :(得分:0)
听起来您正在尝试使用从Windows应用程序导入的代码构建控制台应用程序。
控制台应用程序使用主(或_tmain)入口点,而Windows应用程序使用WinMain(或_tWinMain)入口点。
编辑:确实改变链接器选项,因为本杰明告诉你将解决你的直接问题,但你可能会在以后的混合项目中遇到其他问题。例如,您可以包含一些依赖于_CONSOLE预处理器符号的代码。 您当然可以自己调整后一种设置,但最好从干净的win32模板重新启动,如Scott和Hans建议的那样。