记录MFC开发过程中遇到问题和所采用的方法
注意:
1.带CStringArray变量声明的结构体memset初始化崩溃问题
当你声明了如下结构体:
typedef struct _tagCStringArray
{
INT size;
CStringArray caStringArray;
}CSTRINGARRAY, *PCSTRINGARRAY;
而后我们在使用该结构体时,往往需要对其进行初始化
CSTRINGARRAY csaStringArray;
memset(&csaStringArray, 0, sizeof(CSTRINGARRAY ));
以上初始化会导致CStringArray的this指针被置为NULL,往后对结构体中caStringArray的使用都将导致程序崩溃,为了解决这个问题我们应避开结构体初始化时对CStringArray的初始化,至于不初始化结构体中的CStringArray变量会不会在使用上出现异常,显然不会,因为CStringArray自己带有构造函数,能为自己初始化;避开初始化CStringArray的初始化可以采用嵌套结构体,示例如下:
typedef struct _tagCStringArray