Visual c++ 我应该设置什么选项来使用main()而不是wmain()

Visual c++ 我应该设置什么选项来使用main()而不是wmain(),visual-c++,linker-errors,Visual C++,Linker Errors,我有一个正在工作的Visual Studio项目,它使用wmain()作为入口点。我想改用main() 如果我只是将函数签名更改为int main(),我会得到: 错误LNK2019:中引用了未解析的外部符号 函数“void\uu cdecl maincrtstartucelper(struct HINSTANCE__ *,无符号短常量*)” 我需要更改什么选项才能使链接成功?我通过猜测找到了解决方案 配置属性>链接器>高级>入口点 was:mainWCRTStartup 现在:mainCRTS

我有一个正在工作的Visual Studio项目,它使用
wmain()
作为入口点。我想改用
main()

如果我只是将函数签名更改为
int main()
,我会得到:

错误LNK2019:中引用了未解析的外部符号 函数“void\uu cdecl maincrtstartucelper(struct HINSTANCE__ *,无符号短常量*)”


我需要更改什么选项才能使链接成功?

我通过猜测找到了解决方案

配置属性>链接器>高级>入口点

was:
mainWCRTStartup

现在:
mainCRTStartup
##已删除
W

生成成功。

在源文件中的
int main()之前插入此命令。

#pragma注释(链接器,“/SUBSYSTEM:CONSOLE/ENTRY:mainCRTStartup”)


在Visual Studio项目配置中,将角色集更改为。

project>Properties>General>CharacterSet@IgorTandetnik这听起来很有希望。我在
配置属性>常规>字符集
中找到了它。有三个选项:
不设置
使用Unicode字符集
,以及
使用多字节字符集
。它们似乎都不起作用。事实上,我无法重现这个问题。我刚刚创建了一个全新的Win32控制台项目。我可以在
main
wmain
\u tmain
之间自由切换,而无需触摸项目设置,并且项目构建良好。从长远来看,你在Linker>Advanced>Entry Point下有什么建议吗?@IgorTandetnik:你关于入口点的建议是正确的——我找到了一个解决方案(见我发布的答案)。我认为它还有更多的功能,因为它可以使用空的
入口点
(我通过像您一样从头创建一个项目发现了这一点)。在我现有的项目中,我无法使用空的
入口点
(未解析的
\u WinMain
),但至少我找到了一些有效的方法--感谢您的帮助。关于
WinMain
vs
main
:链接器>系统>子系统。从Windows切换到控制台。您希望入口点为空,但在某些极不寻常的情况下除外。无法在使用库的项目中使用。此解决方案不起作用。”/条目:mainwCRTStartup“与交换机不兼容”/条目:mainCRTStartup”;忽略