Talk is cheap

每天一个API:WinMain

在学习C++/C的时候,都知道入口函数名为 main, 在进行Windows API 开发的时候,入口函数为WinMain,当然也经常会看到 wWinMain _tWinMain 这些只是WinMain的宽字符版本。(为什么WIndow API函数中通常有两个版本呢?详见 )

int WINAPI wWinMain(
    HINSTANCE hInstance, 
    HINSTANCE hPrevInstance, 
    PWSTR pCmdLine, 
    int nCmdShow);
  • hInstance : 通常被叫做“实例句柄” 或者“模块句柄”,在exe文件被加载到内容后,操作系统通过这个值来标识它。在加载图标或者位图时,有些函数需要用到这个参数。也可以简单的将其理解为exe在内存中的首地址

  • hPreInstance: 这个参数现在没有任何意义了,属于是win16时代的遗留问题。

  • pCmdLine:程序运行时的命令参数。 比如以前玩三国群英传,修改下快捷方式,或者直接运行sango.exe -Debug 可以开启调试模式,直接开大。^_^

  • nCmdShow 这个参数用于标识程序运行后界面是 最大化/最小化/关闭 的三种状态

那么这里的返回值 WINAPI 又是什么东西?C++中貌似没有这个类型?
其实这里的 WINAPI是 WindowsSDK给int 取的一个别名。 WinSDK开发中别名 满天飞。。

未经允许不得转载:CheapTalk » 每天一个API:WinMain
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!