1.字符串问题
VS2005中,VC++有关字符串的默认设置为Uincode,而之前版本的VC则是设置为多字节字符串。因此为在VC8.0项目中象之前版本那样使用字符串,必须更改字符串设置。其设置方式为:项目属性→常规→字符集选项中选择“使用多字节字符集”
2.使用CArchive类的问题
使用该类的“>>”读入数据时,后面的变量一定要与文件中的数据类型一致。如二进制STL文件中的“float”类型,就不能使用“double”类型变量来读取。原因是因为各种类型变量的字节数不一致,而“>>”操作符则是根据后面的变量来判断读取字节数量。
3. Dialog与FormView初始化的区别
二者都是在对话框模板上显示控件。但由于二者的基类不同,他们进行初始化的位置也不同。Dialog一般是在重写函数OnInitDialog中进行,而FormView没有这样的重写函数,因此一般重写Create函数,并在此进行初始话,也可以重写OnInitialUpdae()函数来进行初始化。
4. IsKindOf函数的使用
当类从CObject继承,或应用了DECLARE_DYNAMIC, DECLARE_DYNCREATE或DECLARE_SERIAL等宏时,该类就具有了IsKindOf函数。可以使用某一个对象的IsKindOf(RUNTIME_CLASS( 类名称 ))函数形式来判断该对象是否是“类名称”指定的类对象,或是指定类的派生类的对象。
在实际应用中,可以传递一个派生自CObject类的对象到CObject对象变量,然后使用上述函数来判断该对象具体是哪一个类的对象,然后再进行下一步处理。