win32项目与win32控制台应用程序的转换方法

来源:互联网 发布:电脑控制手机源码 编辑:程序博客网 时间:2024/06/11 20:53

在《精通Windows.API-函数、接口、编程实例》一书中讲Windows API的系统基本服务的内容中,有一个将系统目录信息写入 systemroot.txt的代码实例。由于刚刚接触Windows API,错误的创建了win32项目来实现,程序报错为:

1>MSVCRT.lib(crtexew.obj) : error LNK2001: 无法解析的外部符号 _WinMain@16
1>G:\C++\C++Program\basic\Release\basic.exe : fatal error LNK1120: 1 个无法解析的外部命令

经查阅资料,原因为:

如果是Windows程序,那么WinMain是入口函数,新建项目为“win32项目”

如果是控制台应用程序,那么main是入口函数,新建项目为“win32控制台应用程序”


重建工程可解决此问题,但麻烦。可直接将二者进行转换,方法如下:

方法一:

win32项目→win32控制台应用程序:项目——项目属性——配置属性——链接器——系统——(右边)子系统——将“Windows (/SUBSYSTEM:WINDOWS)”改为“控制台(/SUBSYSTEM:CONSOLE)”

win32控制台应用程序win32项目:项目——项目属性——配置属性——链接器——系统——(右边)子系统——将控制台(/SUBSYSTEM:CONSOLE)“改Windows (/SUBSYSTEM:WINDOWS)”  

方法二:

win32项目→win32控制台应用程序:在源程序中添加代码 #pragma comment(linker, "/entry:mainCRTStartup /subsystem:windows")

win32控制台应用程序→win32项目:在源程序中添加代码 #pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:windows")


0 0
原创粉丝点击