Visual c++ 我应该设置什么选项来使用main()而不是wmain()
我有一个正在工作的Visual Studio项目,它使用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
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
vsmain
:链接器>系统>子系统。从Windows切换到控制台。您希望入口点为空,但在某些极不寻常的情况下除外。无法在使用库的项目中使用。此解决方案不起作用。”/条目:mainwCRTStartup“与交换机不兼容”/条目:mainCRTStartup”;忽略