7

我删除了_tmain()IDE 生成的方法,因为在添加条目后我发现有两个入口点毫无意义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:未解析的外部符号 _main 在函数 ___tmainCRTStartup 中引用

错误 LNK1120:1 未解决的外部

我意识到缺少入口点,但是我可以在哪里设置WinMain入口点?我只是查看了项目本身的属性,没有发现任何东西。请注意,我已将项目作为控制台应用程序启动,但现在我正试图将其转换为常规 Windows 应用程序。

谢谢。

4

3 回答 3

12

您需要将子系统更改为 Windows。

在此处输入图像描述

于 2014-04-25T00:52:53.003 回答
1

Project->Properties->Linker->System change Subsystem to /SUBSYSTEM:WINDOWS

如果您还有其他问题,请重新开始,选择 Win32 项目而不是 Win32 控制台。

于 2014-04-25T00:52:57.463 回答
0

听起来您正在尝试使用从 Windows 应用程序导入的代码构建控制台应用程序。

控制台应用程序使用 main(或 _tmain)入口点,而 Windows 应用程序使用 WinMain(或 _tWinMain)入口点。

编辑:确实,正如 Benjamin 告诉您的那样更改链接器选项将解决您的直接问题,但您稍后可能会在此类混合项目中遇到其他问题。例如,您可能包含一些依赖于 _CONSOLE 预处理器符号的代码。当然,您也可以自己调整后者的设置,但最好按照 Scott 和 Hans 的建议从干净的 win32 模板重新启动。

于 2014-04-25T00:54:52.363 回答