找回密码
 立即注册
收起左侧

C++老鸟日记007程序的基本结构

0
回复
5049
查看
[复制链接]
累计签到:41 天
连续签到:1 天
来源: 原创 2018-9-4 10:32:31 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 baizy77 于 2018-10-1 20:45 编辑

版权声明
---------------------------------------------------------------------------------------------------------------------
该文章原创于Qter开源社区(www.qter.org),
作者: 女儿叫老白 (白振勇)
转载请注明出处!
---------------------------------------------------------------------------------------------------------------------
本套课程属于:《C++跨平台开发干货》系列课程。
-----------------------------------------------------------------------------
引言
-----------------------------------------------------------------------------
       本节也是扫盲课程哦。

正文
-----------------------------------------------------------------------------
C++可执行程序(exe)的入口是main()函数,也就是说,我们用C++语言编写的任何可执行程序,都要具备main()函数。如果您使用MFC框架开发,那就不太一样了,因为MFC已经进行了封装,它提供的对外接口已经变成MFC自己的入口了。但是,实际上程序执行时最终调用的仍然是main()函数。
当我们进行32位或64位编译时,如果将编译器的配置弄错了,则有可能导致出现找不到main()函数的编译错误,比如:
error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用。
这时候我们就要检查开发工具的配置,检查其中的开发环境是否配置有误。
main()函数形式如下:
int main(int argc, char * argv[])
main()函数有两个参数,argc表示入口参数个数,argv是入口参数列表。
比如我们开发了一个程序,名称为transfer.exe, 它负责将一个dat文件转换为xml文件,那么程序可能设计为如下的调用方式:
transfer.exe   -i  /usr/local/project/input.dat   -o /usr/local/project/out/output.xml
这里就存在5个参数(包括transfer.exe),argv中保存了5个参数的列表,其中第一个是(transfer.exe的全路径名),后面4个依次为:
       -i
       /usr/local/project/input.dat   
-o
/usr/local/project/out/output.xml
当我们开发命令行应用程序或者服务类程序时,经常会用到main()函数的入口参数。
----------------------------------------------------------------
* 参考资料:《C++编程思想》两卷合订本中文版(2.3.3章节),(美) BruceEckel  Chuck Allison著

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了