还有那位老兄对windows了解很清楚,麻烦介绍一下:
MFC创建一个窗体做了哪些工作?还有SDI and MDI.侯捷的那边深入钱出MFC我看了,写得简单了点点,我在跟宗代码的时候看了我半天,发现里面怎么这么复杂?呵呵,本人懒,VC学习还没多久,那位大虾指点迷津,我会求如来佛祖保佑你长命百岁。:)
11 个解决方案
#1
在Release下出错的原因很复杂,有的是VC的BUG,也有的是你程序存在潜在的BUG,只是在DEBUG方式下没有表现出来就是了。需要进行分析错误信息才能知道原因。
VC中的debug版和Release版本的程序有什么区别:
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。
VC中的debug版和Release版本的程序有什么区别:
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。
#2
楼上说的很对,把俺想说的都说了。:(
呵呵,这个问题很难解决
呵呵,这个问题很难解决
#3
我试过,整个程序检了一遍,原来是一个变量没初始化!
当然,还会有别的原因的。
当然,还会有别的原因的。
#4
在release版本中加上debug调试的信息吧,这样有助于从release版本中看出错误出现在哪儿。
#5
一定是内存读写空间有误,你查查是不是有数组变量越界了,或数据类型强制转换复制时,目标变量空间不够,....诸如此类的问题
#6
我也碰到过这个问题,但是我的是反过来,RELEASE 没问题,DEBUG 有问题
#7
去http://www.csdn.net/Develop/Read_Article.asp?Id=13109看看吧!应该对你有帮助。
#8
呵呵,这个问题我解决了!请大家关注一下我后面的问题,就是MFC怎么创建窗体的?
#9
昨天刚发生和你一样的问题,上面说得都很有道理,可以修改编译属性,关键是定位,看看到底错误发生在什么位置,我的程序主要用于研究算法,后来用临时文本文件定位出Release编译出错位置,原来是memcmp在Release版本下面变得不可靠,也许是字节对齐导致,反正发现逻辑一致的代码行输出的结果不一样,所以轻松搞定,关于Debug和Release的文章倒是有一些,但是我也作程序,发现对自己用处不大,还是得自己定位!
#10
侯Sir的书不是写了吗?
#11
http://expert.csdn.net/Expert/topic/1216/1216726.xml?temp=.8159449
#1
在Release下出错的原因很复杂,有的是VC的BUG,也有的是你程序存在潜在的BUG,只是在DEBUG方式下没有表现出来就是了。需要进行分析错误信息才能知道原因。
VC中的debug版和Release版本的程序有什么区别:
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。
VC中的debug版和Release版本的程序有什么区别:
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。
#2
楼上说的很对,把俺想说的都说了。:(
呵呵,这个问题很难解决
呵呵,这个问题很难解决
#3
我试过,整个程序检了一遍,原来是一个变量没初始化!
当然,还会有别的原因的。
当然,还会有别的原因的。
#4
在release版本中加上debug调试的信息吧,这样有助于从release版本中看出错误出现在哪儿。
#5
一定是内存读写空间有误,你查查是不是有数组变量越界了,或数据类型强制转换复制时,目标变量空间不够,....诸如此类的问题
#6
我也碰到过这个问题,但是我的是反过来,RELEASE 没问题,DEBUG 有问题
#7
去http://www.csdn.net/Develop/Read_Article.asp?Id=13109看看吧!应该对你有帮助。
#8
呵呵,这个问题我解决了!请大家关注一下我后面的问题,就是MFC怎么创建窗体的?
#9
昨天刚发生和你一样的问题,上面说得都很有道理,可以修改编译属性,关键是定位,看看到底错误发生在什么位置,我的程序主要用于研究算法,后来用临时文本文件定位出Release编译出错位置,原来是memcmp在Release版本下面变得不可靠,也许是字节对齐导致,反正发现逻辑一致的代码行输出的结果不一样,所以轻松搞定,关于Debug和Release的文章倒是有一些,但是我也作程序,发现对自己用处不大,还是得自己定位!
#10
侯Sir的书不是写了吗?
#11
http://expert.csdn.net/Expert/topic/1216/1216726.xml?temp=.8159449