[C]C语言编写windows程序

2 篇文章 0 订阅

1. 引例

为了便于对比,让我们以一个非常短的Windows程序和一个简短的文字模式程序开始。
//文字模式(Character-Mode)模型

main ()
{
           printf ("hello, world\n") ;
}

以前C程序写作者在使用printf等C执行期链接库函数时,无需先声明它们。但是90年代后,我们愿意给编译器一个在我们的程序中标出错误的机会。

这里是在K&R第二版中修正的程序:

#include <stdio.h>
main ()
{
           printf ("hello, world\n") ;
}
该程序仍然是那么短。它可通过编译并执行得很好,但当今许多程序写作者更愿意清楚地说明main函数的返回值,在这种情况下ANSI C规定该函数必须返回一个值:
#include <stdio.h>
int main ()
{
           printf ("hello, world\n") ;
           return 0 ;
}


同样效果的Windows程序

Windows关于【hello, world】程序的等价程序有和文字模式版本完全相同的组件。它有一个include声明、一个程序进入点、一个函数呼叫和一个return语句。下面便是该程序:

#include <windows.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
	MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0);
	return 0 ;
}

 VC中新建Win32 Application工程。添加源文件HellMsg.c。

//
表头文件
HELLOMSG.C以一个预处理器指示命令开始,实际上在每个用C编写的Windows程序的开头都可看到:
#include <windows.h>
WINDOWS.H是主要的含入文件,它包含了其它Windows表头文件,这些表头文件的某些也包含了其它表头文件。
程序进入点
正如在C程序中的进入点是函数main一样,Windows程序的进入点是WinMain,总是像这样出现:
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
许多Windows程序中的变量名使用一种称作「 匈牙利表示法」的命名系统,该系统在变量名称前面增加了表示变量数据型态的短前缀
MessageBox函数
MessageBox函数用于显示短信息。虽然,MessageBox显示的小窗口不具有什么功能,实际上它被认为是一个对话框。
MessageBox的第四个参数可以是在WINUSER.H中定义的一组以前缀MB_开始的常数的组合。您可从第一组中选择一个常数指出希望在对话框中显示的按钮:
#define     MB_OK   0x00000000L
#define     MB_OKCANCEL 0x00000001L
#define     MB_ABORTRETRYIGNORE 0x00000002L
#define     MB_YESNOCANCEL  0x00000003L
#define     MB_YESNO    0x00000004L
#define     MB_RETRYCANCEL       0x00000005L
如果在HELLOMSG中将第四个参数设置为0,则仅显示「OK」按钮。可以使用C语言的OR(|)操作符号将上面显示的一个常数与代表内定按钮的常数组合:
#define     MB_DEFBUTTON1  0x00000000L
#define     MB_DEFBUTTON2    0x00000100L
#define     MB_DEFBUTTON3  0x00000200L
#define     MB_DEFBUTTON4   0x00000300L
还可以使用一个常数指出消息框中图示的外观: 
#define     MB_ICONHAND     0x00000010L
#define     MB_ICONQUESTION    0x00000020L
#define     MB_ICONEXCLAMATION    0x00000030L
#define     MB_ICONASTERISK     0x00000040L
这些图示中的某些有替代名称:
#define     MB_ICONWARNING     MB_ICONEXCLAMATION
#define     MB_ICONERROR     MB_ICONHAND
#define     MB_ICONINFORMATION      MB_ICONASTERISK
#define     MB_ICONSTOP    MB_ICONHAND
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值