您的位置:首页 > 其它

我的windows学习心得

2011-09-03 00:53 197 查看
就我所学的进行总结总结

第一章:

1.windows环境中运行的程序可以共享存储在所谓动态链接库文件中的例程,windows提供了在运行时将程序和动态链接库例程链接起来的机制,其实windows基本上就是一整套动态链接程序库

2.windows用不着直接访问硬件,windows将硬件虚拟化,配合适当的驱动程序就能在硬件上面直接运行

3.早期的windows的大部分实现了三个动态链接库,它们分别代表了windows的单个主要的子系统,即内核(kernel),用户(user),GDI,新的系统虽然怎加了不少,但基本的还是这三个系统,内核负责操作系统的传统的工作,包括内存管理,文件输入,输出以及任务管理,用户指的是用户管理,GDI就是图形设备接口,负责在屏幕或打印机显示文本域图形

4.每个windows的EXE文件包含所要用的各个动态链接库以及库中函数的引用地址,当程序被装入内存时,程序中的函数调用都被解析成DLL函数入口的指针

5.windows.h最重要的包含文件,它囊括了若干其他windows头文件,其中的某些头文件又包含另外头文件,下面是最重要,也是最基本的头文件

WINDEF.H 基本数据类型定义

WINNT.H 支持Unicode的类型定义

WINBASE.H 内核函数

WINGDI.H图形设备接口函数

这些头文件定义了windows的所有数据类型,函数调用,数据结构以及常量标示符

6.正如c程序的入口一样,windows程序入口是WinMain,总是以下面的面目出现:

int WINAPI WinMain(HINSTANCE hinstance,Hinstance hPreInstance,

PSTR szCmdLine,int iCmdShow)现在就这些参数进行说明一下:

第一个是一个实例句柄,用来表示一些东西,在这个例子中用来表示这个程序

第二个参数,当多路运行同一个程序时,那么这个程序就会创建多个实例,所用的实例都会共享代码,以及只读存储,一个程序可以通过查看hPrevInstance是否有其他的实例正在运行,如果有可以跳过某些零散杂物步骤,其值通常是NULL

第三个参数:有些windows程序在启动时用它来装入内存

第四个参数,表明最开始窗口是如何在桌面上显示的

7.关于MessageBox函数如:

MessageBox(NULL,TEXT("ZJDSF")TEXT("FSDFSD"),0);

第一个参数是窗口句柄,第二个和第三个参数是在文本区和标题栏上显示的内容,最后一个参数是MB_开头的一些文字,函数的返回值是IDOK

第二章:

感觉第二章比第一章难多了,第二章主要讲了关于字符的相关知识,总结了一下,还有很多的东西没有看懂,以后还可以补充

1.美国国家信息标准码(ASCII),一共是126个字母,每个字符使用7位来表示的,这种字符已经深深的扎根于计算机,由于有许多的字符ASCII是不能表示的,人们就想着用8位来表示以个字符,这样就有128个额外的字符,但这个字符集不太适合用于windows,windows不需要线图字符,因为他有一个完整的图形系统,windows自有的字符集被称为“ANSI字符集”,但这样不行。

2.由于上述都不行,人们就想着用双字节字符集(DBCS)但这样出现了一个问题,就是字符串的长度没法决断,字符串的长度不能有字节的长度来决定

3.unicode解决方案:使用双字节,了解unicode和DBCS的区别,unicode里的字符是16位宽,而不是8位宽,8位在unicode是没有意义的,但在DBCS中我们仍在处理8位值,在DBCS某些单字节就定义了一个字符,而一些字节则需要额外字节才能完全定义一个字符,unicode只有一个字符集,因此避免了二义性,但是unicode占得空间大一倍,宽字符不一定是unicode

4.char数据类型

对于一下语句:char *p="hello!",指针p需要4个字节,指向的是7个字节的空间,c语言中的宽字符

第三章:

感觉这张好难,在看了第二遍以后感觉好了一点但还是有很多不理解的地方,总结了一下:

1.windows向应用程序发送了一条消息,实际上就是向你的窗口过程发送了一条消息,这个窗口过程可以是应用程序中某一个函数,也可以是动态链接库中,窗口过程根据这些消息作出相应的处理

2.窗口类表示了传递消息的窗口过程,windows中允许多个窗口共享同一个窗口类,因而多个窗口可以使用相同的窗口过程,例如windows中所有的按钮都是基于相同的窗口类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: