1:请记住,由窗口名可以得到HWND(如FindWindow()函数),由HWND可以得到HDC(如GetDC()函数),由HDC就可以画图了,必须注意的是,这两个东西最好是全局变量。
2:请使用sprintf系列函数来format字符串,示例如下:
char buffer[200], s[] = "computer", c = 'l';
int i = 35, j;
float fp = 1.7320534f;
j=sprintf(buffer,"String:%s/nCharacter:%c/nInteger:%d/nReal:%f/n",s,c,i,fp);
3:请注意汉字于字符混合在一起后的处理,若处理不当,后果可不怎么好,往往容易出现乱码,一般乱码就是因为汉字错位了(错了1位)。示例如下:
char ch[10]="abc你好啊";
for (int i(0);i<10;++i)
{
cout<<int(ch[i])<<endl;
}
可以发现一般英文字符为整数,汉字的一半为负数,这里仅为参考。
请使用一个计数器来记录中文字符数,如下:
GLuint count=0;
for(int i(0);i<24;++i)
if(buf[i]<0)++count;
4:若是VS作为编译器,请每隔一段时间(如重复编译20次以后)清理一下工程中的文件,将能删的全部删除,这样可以保证编译器能正确识别类等信息。
5:请尽量通过添加函数来解决问题,而不是添加变量。
6:请注意文件保存为.txt格式时的空格键问题。
7:我们对外是使用方法(函数)来进行交流,对内则使用数据,程序的执行过程应该是函数过程,而不应该夹杂数据。
8:extern关键字:适用于文件作用域的全局变量,(extern声明与定义,或在其他文件定义,注意只能定义一次。)
static 关键字:使用于文件作用域的全局变量,也可为块或函数中的局部变量
register 关键字:用于指定存放在高速寄存器中的变量
auto 关键字:块作用域或函数作用域中(缺省)
9:请尽量避免通过全局变量使用隐式耦合度,请通过参数传递使用显式耦合度,这样可以只研究函数头就可以理解程序的数据流,而不需要研究函数代码。
10:请不要为了效率问题而随意使用指针或引用参数,从软件质量角度,那样的代码不是好代码,那样的函数不是好函数。请从实际出发!
11:请仔细考虑函数的职责分配,尽量降低耦合度。
12:数据封装的真正意义在于程序组成部分的可读性和独立性,而不仅仅是保护数据!
/12箴言,至此。