日期:2014-05-17  浏览次数:20817 次

开始写windows程序设计的学习笔记了

windows程序设计,这本书1000多页,以前看电子版,跳跃着学习了一段时间,现在从头开始学习。虽然由于工作,学习时间可能不是很充裕,进度估计不会很快,但是我比较喜欢跳跃,可是持久性不强,希望能坚持到完吧。

? 第一章,起步

? 先抱怨一下啊,这个博客的编辑器还真是难用,摁了tab光标就跑到附件去了,缩进都麻烦。

#include <Windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstace,PSTR szCmdLine,int iCmdShow){
	MessageBox(NULL,TEXT("This is my first program!"),TEXT("MessageTitle"),0);
	return 0;// SUCCESS
}

? 一个helloworld小程序,感觉可学的还不少啊。首先是预处理指令,windows.h包含了几个重要的基本头文件,WINDEF.h,WINNT.h,WINBASE.h,WINUSER.h,WINGDI.h。

? 然后是程序入口WinMain,这个和_tWinMain的关系呢,如果让vs2010自己生成一个窗口的话,是用了_tWinMain这个入口函数,具体关系后面详解。

? WINDEF.H中用#define WINAPI _stdcall定义WINAPI标识符。

? 一个程序可以通过查看hPrevInstance参数从而知道是否有它的其他实例正在运行

? 第三个参数szCmdLine(sz代表string end of zero:以零结尾),是用来运行程序的命令行。有些程序在启动时用它来把文件装入内存

? 第四个参数用来指明程序最初如何显示:正常显示, 或者最大化显示,或者最小化显示在任务栏中。

? 然后介绍了一下MessageBox函数,其实函数很多,学会一个就都会了,详细用法api或者google上写的很清楚

?

? 编译,编译器从c源代码文件产生一个.OBJ(目标文件)。在连接阶段,连接器又把.OBJ文件和.LIB(库程序)文件放到一起产生.EXE文件。可以通过settings选择需要链接的库程序。windows中有三个重要的库程序,KERNEL32.LIB,USER32.LIB,GDI32.LIB。用这些文件对相应的DLL动态链接库内的函数调用

?

? 第一章就这么短,仔细看来有些细节还是不怎么熟悉的。第一遍先看个大概其,能做出点什么,之后呢细致的东西在不断的google中自然就会了。先到这里,佩服自己能把这章耐心写完,谢谢自己。

?