花了很长时间写的一个软件,Debug版本一切正常,而最后Release版本莫名其妙的出了问题。
花了很长时间,终于把问题定位到如下代码段:
char buf[256] = "" ;
CString test;
RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\预约系统助手",&hKey);
test.Format("%ld",GetLastError());//aaaaaaaa
MessageBox(test);//aaaaaa
RegQueryValueEx(hKey,"path",0,&dwtype,(LPBYTE)buf,&dwvalue);
GetLastError();//aaaaa
test.Format("%ld",GetLastError());//aaaaaa
MessageBox(test);//aaaaaaaaaaaa
m_path = buf;
MessageBox(buf);
/////////////
debug版本 buf的值一切正常,
release版本 为什么buf取不到注册表的值。。。。
GetLastError也是正常的。。。。
后来发现,我加了这些测试语句后居然正常了!也就是代码中注释为aaaaaaaa的代码,靠这是什么意思?根本没有影响啊,为什么加了就正常,没加buf就读不到注册表。。。
还有,当我把Release版本中“工程-设置-C++-优化”改为“最快”,那么如上代码段就一切正常,但是其他某个地方会出问题,我还没有定位到。所以现在我在“工程-设置-C++-优化”中是“默认”。。。。
神啊,帮帮我吧。。。