技术小咖之windows应用程序的入口函数

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow) 

前面我们已经强调过了,windows图形界面的应用程序的入口函数名必须为WinMain ,而且调用约定必须为_stdcall。因为入口函数是由操作系统来调用的。既然如此,该函数的四个参数也是由操作系统来赋值的。

下面我们来解释一下这四个参数的含义:

  1. HINSTANCE hInstance

应用程序实例句柄,当用户运行应用程序时,就会创建一个应用程序实例句柄。该句柄的本质是进程句柄。一个应用程序运行时,操作系统就会创建一个进程,一个主线程(线程函数为WinMain )。进程创建的同时会返回一个进程句柄,操作系统以及其他的应用程序可以通过进程句柄来管理进程,如:终止进程的执行,或通过管道向进程传递数据等。

     2.HINSTANCE hPrevInstance

前一个实例句柄,一个应用程序可以运行很多次,每次都会创建一个实例句柄。

     3. PSTR szCmdLine

命令行参数,当我们通过命令方式启动一个应用程序时,可以在命令中输入相应的参数。

比如DOS命令中的CD命令:C:\>CD  WINDOWS,其中 WINDOWS就是该命令的参数。

我们在E盘根目录下创建一个简单的win32应用程序,项目名为comdline:

#include "windows.h"
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
	MessageBox(NULL,lpCmdLine,"命令行参数",MB_OK);//显示命令行参数
	return 0;
}

添加如上面粗体的代码。用一个对话框来显示命令行参数。

编译链接后,生成可执行文件。可执行文件在e:\comdline\debug目录下。

下面我们通过控制台来运行该程序。

1)点开始菜单,点运行。

2)输入CMD

3)点确定,将启动控制台窗口。

4)在控制台中输入如下图1-8所示一组命令:

可见,我们输入的命令行参数在messagebox消息框中显示出来了。

其中:

第一行命令是将路径转换到E盘根目录。

第二行和第三行命令是将当前路径设置为comdline.exe可执行文件的目录中。

第四行命令是通过命令行参数的形式来运行程序,并将“同志们好,首长好!”作为命令行参数来启动应用程序。

       4. int iCmdShow

表示该应用程序窗口是否显示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术小咖龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值