在VC++中应当注意对VC字符集的设置
2008-11-12 19:26:30 来源:WEB开发网我拿了那个现成的工程,直接在我的工程里引用他的工程。Everything works perfect.直到我把项目发布成Release的,双击运行后没有任何反应,Very weird!后来我用MessageBox打印消息,发现运行到DoModal函数里面就没有出来,程序直接退出了!使用try,catch都得不到错误!因为我的窗体是继承老外写的窗体类来的,原先继承CDialog是好好的,问题肯定在他的工程里面,可是他给的示例程序没有任何问题啊。MFC出错的时候是很要命的,它不会给你任何提示,它就是不干了!
我又拿一个前的测试程序,让它从CResizableDialog继承,也没有任何问题。
简直头大了、无语了,不知道哪里出现了问题,Release又不能像Debug那样调试,打了一堆MessageBox后还是不知道问题出现在哪里。凭着经验,可以知道程序中可能出现了内存的越界访问什么的致命错误,才会导致程序“一声不吭”地退出,但是究竟哪里出了问题呢?
就在束手无策的时候,我发现调用CResizableDialog的成员函数EnableSaveRestore会引发链接错误:“未定义的外部符号”,不引用它不会出错,测试程序引用它没有任何错误。通常这个错误造成是因为引用函数在。h文件里声明了,但是在。cpp里面没有定义,或者。cpp文件里的定义和。h上的参数对不上。但是此时不可能是这个错误,因为测试程序没有错误啊。直觉告诉我这是解决“Release后程序直接退出的关键”,说不定这个函数调用的问题解决了Release的问题也解决了。
MFC真是很强大,它强大得不但“像迷宫一样,里面有怪兽,进去一不小心就永远出不来”,而且它让你当遇到怪兽的时候总是给你一点点星光,只要你不放弃,奇迹就会出现,你就会练成绝世神功。这跟武侠小说是相通的,主人公每次到了生死关头就会出现奇迹,成为天下无敌的高手。看看我怎么找到解决方法的,Very tricky。
更多精彩
赞助商链接