Windows编程学习日志一

Windows子系统开关
从今天起开始我的windows学习心得的日志,有兴趣的网友可以随时交流啊!
Windows支持两种类型的应用程序,一种是图形界面的,简称GUI,另一种是控制台程序,简称CUI。GUI拥有前端界面,用户通过图形界面与操作系统进行交互,一般是通过消息传递的方式完成的。CUI就是在“开始”->“运行”的文本框输入“cmd”后的黑色(默认)窗口。
使用VS(Visual Studio)建立windows项目时,有两个选项,如图:
Windows编程学习日志(一)


一个是win32控制台应用程序,一个是win32项目。初学C语言的人往往选择第二个,也就是win32项目,最后连简单的helloworld程序也无法正常编译通过,错误提示更是以“error LNK2019: 无法解析的外部符号_WinMain@16,该符号在函数 ___tmainCRTStartup中被引用”的形式展示,使初学者摸不着头脑,一般的解决办法是关闭现有项目,新建一个新的项目,选择win32控制台应用程序,那有没有其它办法解决呢?有的。
要理解使用什么方法,首先应该知道计算机启动一个C程序的过程,我们知道C程序是从main函数开始的,那在main函数之前呢,windows操作系统首先要给要启动的应用程序分配相应的资源,然后启动C/C++的运行时函数,该函数会寻找代码中的四个入口函数,它们分别是(此处参数皆省略)
int WINAPI WinMain
int WINAPI wWinMain
int __cdecl main
int __cdecl wmain
然而,在寻找前还要去判断链接程序开关:/SUBSYSTEM:WINDOWS和/SUBSYSTEM:CONSOLE,如果当前的开关是/SUBSYSTEM:WINDOWS则只寻找intWINAPI WinMain和int WINAPI wWinMain,如果当前开关是/SUBSYSTEM:CONSOLE则只寻找int__cdecl main和int __cdeclwmain,这就是我们提到的win32控制台应用程序和win32项目的区别,如果是win32控制台应用程序则开关是/SUBSYSTEM:CONSOLE的,即只寻找int __cdecl main和int __cdeclwmain,如果是win32项目则开关是/SUBSYSTEM:WINDOWS,即只寻找int WINAPI WinMain和intWINAPIwWinMain,明白了这一点,我们就可以找到解决问题的方法了,如果项目建错了,能否通过修改开关来使程序正常编译运行呢?可以的。
选择“项目”->“属性”,修改如图的设置即可。


修改完毕后,点击确定,重新编译运行,即可通过。

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/61945.html

更多阅读

Eclipse+Jboss+EJB3.0学习笔记一

自03年开始学习JAVA以来,一直都很崇拜J2EE,之所以崇拜可能与J2EE的中文描述有关,J2EE——企业级分布式开发,现在就随着我对J2EE的学来进一步揭开J2EE的神秘面纱。J2EE里的Session Bean,分无状态(Stateles)和有状态(Stateful)SessionBean,其实

数控编程技巧 cnc编程学习

一、数控机床坐标系规定数控坐标系是以刀具相对静止工件运动为原则数控机床坐标系采用的是右手笛卡尔直角坐标系,其基本坐标轴为X、Y、Z直角坐标,如下图所示,规定了X、Y、Z三个直角坐标轴的方向,这个坐标系的各个坐标轴与机床的主要

小学数学教师业务学习材料(一

小学数学教师业务学习材料聚焦小学数学系列一:小学数学要注重长远与长效从整体上把握小学数学,着眼点很多。要想理出头绪、抓住重点,“放眼长远、注重长效”最重要。放眼长远是核心长远是就目标而言。无论一个人长大以后在不在数学领域

东洲中学考察日志一 _minghui73 富阳东洲中学

2012年3月6日,是天津市“265农村骨干教师培养工程”市级学员(初中组)在东洲中学学习的第一天,虽然出发前每位学员都通过各种途径对该校进行了初步了解,对学校的管理、课堂教学,充满了好奇与探究的欲望,不知道是什么教育妙方,把一所仅办校20

绘画基础学习方法(一)

一究竟要从那里开始许多初学绘画的朋友都会提出这样一些问题:我从那里开始学习啊?是临摹呢还是写生呢?临摹照片还是临摹大师?要不要画素描?怎么写生?怎么临摹?为什么我总是没有进步呢?其实我曾经一直有着和你们一样的困惑:究竟要从那里开始?二

声明:《Windows编程学习日志一》为网友做回自己分享!如侵犯到您的合法权益请联系我们删除