遇到了一个奇怪的问题,
问题:一个对话框类中声明了cstring类型的成员变量m_str,对话框初始化的时候,这个m_str被置为NULL(系统所为,我没有做任何定义或赋值操作,就在.h中声明了一下 CString m_str),导致初次get这个m_str会崩溃,debug几个小时,一无所获。
寻找办法:找到一哥们儿也有这个问题,https://bbs.csdn.net/topics/392038072,见链接,很无奈,有人说多线程的问题,有人表示是不是在被置为NULL之前做了什么操作,有人建议看汇编。我找到的重点是,我跟这哥们儿一样,只是初始化,没做任何其他动作,而且一直运行正常,突然有一天就出现这个问题,很无语的......
解决办法:我不想浪费时间调试了,直接按照这哥们儿说的,在.h中,把这个变量和它前后的其他CString变量放到最前面,也就是紧接着public:下面,编译就通过了,完全就ok了。
我还是不明白这是什么原因,希望哪位明白其中的道理的朋友能够指点一下。
记 遇到的无法解释的问题。