Chinaunix首页 | 论坛 | 博客
  • 博客访问: 85063
  • 博文数量: 18
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-17 08:51
文章分类

全部博文(18)

文章存档

2010年(5)

2009年(13)

我的朋友

分类: WINDOWS

2010-01-04 14:25:00

在C/C++中,我们知道有一个如下格式的函数:
int main(int argc, _TCHAR* argv[])
{
return 0;
}
该函数是C/C++中的入口函数,而在WindowsAPI中也有自己的入口函数,该函数的格式为:
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR    lpCmdLine,
int       nCmdShow)
{
return 0;
}
其中APIENTRY表示该函数为一个被系统调用的函数,WinMain即为Win32API的入口函数名。有时候,我们也会遇到_tWinMain这样的格式,在这个格式中_t表示为Unicode,即该函数支持Unicode字符串。WinMain函数带有四个参数,他们的作用分别为:
HINSTANCE hInstance---系统为本应用程序分配的一个唯一的实例句柄。由于Windows系统中存在各种各样的进程,为了便于管理,系统在每一个应用程序启动的时候都会为该应用程序分配一个唯一的数值,这个值即为该应用程序的实例句柄。
HINSTANCE hPrevInstance--这个参数只是为了保持与16位Windows的应用程序的兼容性。设为NULL即可。
LPTSTR    lpCmdLine---命令行字符串数组指针。我们可以在启动一个程序的同时将需要传入到应用程序的数据通过这个参数传入到应用程序当中。
int       nCmdShow---窗口的显示方式。可以根据传入不同的整数值来决定窗口以什么样的方式显示(当然需要在应用程序中利用该参数作为窗口的显示模式)。
在VC环境下点击文件-〉新建-〉项目-〉Win32应用程序,在右边的输入框中键入项目的名称,点击OK按钮,然后在3个单选按钮中选择”a simple Win32 application”(简丹应用程序),然后点Finish(完成)按钮完成我们的创建项目过程,系统就会为我们生成一个包含上述主函数的Win32项目(如果是VS.Net项目,我们需要创建一个空的Win32项目,再在项目中添加一个.cpp文件,在文件中填入上述代码)。
利用编译器的生成菜单项编译我们的项目,结果是什么都没有,因为我们还没有在主函数中添加任何代码。为了看到效果,我们可以在主函数中键入如下代码:
MessageBox(NULL,”内容”,”标题”,MB_OK);
再执行我们的代码,会发现弹出了如下的一个消息框:


该消息框被主函数中的MessageBox函数所生成,MessageBox函数是Win32中生成消息框的函数。该函数有四个参数:
第一个参数指定该消息框的父窗口句柄,如果该消息框隶属于另外一个窗口,那么这个参数表示为隶属窗口的句柄。
第二个参数为将要显示在消息框文本区域的字符串。
第三个参数为将要显示在消息框标题栏的字符串。
第四个参数为生成的消息框所具有的风格。常用的风格有MB_YESNO、MB_OKCANCEL、MB_YESNOCANCEL等,分别对应带有不同按钮的消息框。这样,一个可以弹出消息框的VC代码就实现了。

阅读(2160) | 评论(0) | 转发(0) |
0

上一篇:x86寄存器说明

下一篇:fork()子进程创建

给主人留下些什么吧!~~