日期:2014-05-16  浏览次数:20784 次

Windows程序设计学习笔记--第一个Windows程序以及宽字符集(了解)

Hello World程序。


1.“Hello World” c语言 版本

先是c语言的标准代码如下:

#include <stdio.h>

int main ()

{

           printf ("hello, world\n") ;

           return 0 ;

}

2."Hello World" Windows 版本

下面是Windows程序的标准代码:(摘自P先生的书)

/*------------------------------

HelloMsg.c -- Displays "Hello, Windows 98!" in a message box

    (c) Charles Petzold, 1998

--------------------------------*/

#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 ;

}

Windows关于「hello, world」程序的等价程序有和文字模式版本与c语言版的有完全相同的组件。它有一个include声明、一个程序进入点、一个函数呼叫和一个return语句。


首先关于包含文件*.h:

#include <windows.h>

WINDOWS.H是主要的含入文件,它包含了其它Windows表头文件,这些表头文件的某些也包含了其它表头文件。这些表头文件中最重要的和最基本的是:

  • WINDEF.H 基本型态定义。
  • WINNT.H 支持Unicode的型态定义。
  • WINBASE.H Kernel函数。
  • WINUSER.H 使用者接口函数
  • WINGDI.H 图形设备接口函数。

其次是:程序进入点

正如在C程序中的进入点是函数main一样,Windows程序的进入点是WinMain,总是像这样出现:

int WINAPI WinMain (      HINSTANCE hInstance,HINSTANCE hPrevInstance,

           PSTR szCmdLine,int iCmdShow)


这就是第一个Windows程序。

经典的Hello World。


3.关于字符集

其实关于Unicode码的信息看了很多了。

这次重点说一下宽字符集和Windows。

关于宽字符集,最近看了《c语言核心技术》才了解的。

c语言的版本:

下面的语句定义并初始化了一个只包含一个字符的变量:

char c = 'A' ;     

变量c需要1个字节来保存,并将用十六进制数0x41初始化,这是字母A的ASCII代码。

您可以像这样定义一个指向字符串的指针:

char * p ;

您还可以像这样定义字符数组:
char a[10] ;       
在这种情况下,编译器为该数组保留了10个字节的储存空间。表达式sizeof(a)将返回10。如果数组是整体变量(即在所有函数外定义),您可使用像下面的语句来初始化一个字符数组:
char a[] = "Hello!" ;