![7c1f081e3d1b39e91163a11ae894ec39.png](https://i-blog.csdnimg.cn/blog_migrate/384a794675d0100dfa5b4ab1f568bb5d.jpeg)
- Win32编程基础知识
Windows编程,大家也通常称为win32编程,或win32 SDK编程,其含义是针对32位Windows操作系统。本章节回顾了C语言的入口函数,再引入Win32入口函数,通过win32开发所需要的相关知识,巩固对Win32编程的理解。
Win32编程具体的功能是什么?它是为Windows系统编写应用程序的工具或手段,目的是为了服务于系统用户。当然,Win32程序就是所有可以在Windows系统下运行的程序的统称。因为Windows是由很多窗口组成,所以这里所指的Windows程序,即为窗口程序。
通常所编写的程序,即为应用程序,是指为了完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序。应用程序与应用软件的概念不同,但常常因为概念相似而被混淆。软件指程序与其相关文档或其他从属物的集合。一般视程序为软件的一个组成部分。对于应用程序,需要了解的是,每一个应用程序运行于独立的进程、它们拥有自己独立的地址空间。不同应用程序的分界线称为进程边界。
- C语言入口函数
在C语言的世界里,所有的程序都是用函数来装配的,main称之为主函数,是所有程序运行的入口。main函数可以无参,也可以有参,但标准的C语言,main函数是有参函数,其形式如下所示:
int main(int argc, char* argv[])
{
printf("Hello World!n");
return 0;
}
在main函数之前的“int”,是主函数的返回值类型,因为有它,所以在主函数的函数体内部的最后,要加入“return 0;”,需要将函数的返回值返还回去。
int argc:argc是命令行总的参数个数,即主函数带有多少个参数。
char* argv[]:argv 是指针数组,其中argv[]是argc个参数(参数内容),其中第0个参数是程序的全名,后面的参数是命令行后面跟的用户输入的参数。
现在以DOS命令“dir”为例,假设输入:“dir /w /p c:Windows”,如图2.1所示。
![90a33aa565d20cb72b92c6074dcc71db.png](https://i-blog.csdnimg.cn/blog_migrate/88683c8b940bdbbb01b5047f66422782.jpeg)
图2.1 cmd 命令行
其各个参数的含义解释如下:
argc = 4
argv[0] = dir
argv[1] = /w
argv[2] = /p
argv[3] = c:Windows
如果想编写带有命令行参数的程序,通过对argc与argv的配合即可实现。当然也可以通过参数的内容来实现不能功能的加载。
![283ae0f2fa45da606d6bd07a3e982202.png](https://i-blog.csdnimg.cn/blog_migrate/8a0036d31549992dd166c358a053db5e.jpeg)