Visual C++.Net技术内幕读书笔记(1)

1.基于Windows的程序和基于MS-DOS的程序之间的一个最根本差别:
 MS-DOS程序是通过调用操作系统的功能来获得用户输入的,而Windows程序是通过操作系统发送的消息来处理用户输入的。
2.程序可以向桌面上的任何窗口发送消息?
 如何发送?要先找到窗口句柄?
3.GDI和设备描述表(device context)
 许多MS-DOS程序直接往视频存储区或打印端口输送数据。Widows提供了一个抽象层,即图形设备接口(Graphics Device Interface)Windows将设备描述表结构映射到相应的设备,GDI引用DC操作硬件,程序就不用直接访问硬件了。GDI和直接操作硬件速度几乎一样快。

4.动态链接库(DLL)
 多个应用程序可以共享一个动态链接库,这样可以大大节省内存和磁盘空间。同时,动态链接库可以大大提高程序的模块灵活信,因为可以对动态链接库单独编译和测试。
 疑问:多个程序共享一个动态链接库时,内存中有动态链接库的一个拷贝还是多个??

5.makefile
 Windows Mobile SDK中就有很多makefile文件。
 makefile保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系。可以手工编写makefile,然后通过NMAKE.EXE运行makefile,NMAKE首先读取makefile,然后再激活编译器,汇编器,资源编译器和连接器以便产生最后的输出。

6.偷取资源
 资源编辑器也可以处理EXE和DLL文件,因此可以用剪贴板来“偷取”资源,比如其他程序的位图和图标等。
 Windows Mobile的系统图标在那个shell??.dll文件中。

7.增量连接选项
 增量连接选项(incremental link option)可以在源文件变化不大的情况下最大限度地减少执行时间。没找到在哪?

8.调试器的几个疑问
 将调试器关联到一个正在运行的程序上,如何做??
 远程调试 关联到一个在其他服务器上运行的程序上,如何做?? 

你可能感兴趣的:(C++,.net,windows,读书,makefile,编译器)