求助高手,debug不行,但是release却没有一点问题,这个是为什么? 在release里没有一点问题,但是在debug里却会在程序初始化时出现两个报警错误提示,电机“忽略”之后可以继续运行,没有,但是却出现一些奇怪的错误。按理说,release会比debug严格一些,而我却得到相反的结果。我看了一下debug里面的错误,好像是说获取当前线程后,断言错误。如何解决这个问题呢?各位如果以前遇到过这样的问题,请说说自己是怎么解决的好吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 debug中有很多ASSERT的宏在起作用,说明你的程序有些问题 按理说,release会比debug严格一些==============其实在release中,基本上没有任何错误检查了 呵呵, 可能是因为你用了 Visual C++ 创天中文企业版,那个中文版问题太多.如果是的话, 一般都会出这个问题,我有不少同学也遇到过. 后来用了英文版都好了建议你快换成英文版, 绝对不会再出这种问题. debug下会有断言警告,提示有些地方除错,可以方便调试。如果有断言错误,一般就是程序有问题,需要检查。比较常见的句柄无效,参数非法等等release不会做验证的动作,会直接崩溃, 对于debug版本,可以跟踪一下是否出现了什么问题 楼上说的都对不过,我有一次遇到的情况是我在一台机器上用release编译后把代码交给另一个人在另一台机器上编译release版没有问题,但用debug就不行了,把原来release里的.obj文件删除在release又不行了,错误是路径问题原来vc会使用原来编译的.obj文件,虽然代码文件的位置改变了 不能通过ASSERT的检查,在Release中没有ASSERT,所以没有错,不过release版本会不稳定的,有时会出错的可以设置断点跟踪一下。有可能是把函数放在ASSERT里面运行,可是ASSERT在release下是不被运行的,所以可能有些变量或窗口没有创建,所以就会出现这种错误,仔细检查一下有没有这样的错误呢 谢谢楼上的几位。但是我有一些情况需要说明一下:我做的是一个dll,使用了ole db,作用相当于一个数据库访问的中间件。这个Release版本已经稳定运行两年多了,还没有发现什么不稳定的现象。但是问题不在这里,而是使用这个dll的工程。同样都使用这个dll的release版本,如果新创建一个工程,使用这个dll,新工程如果运行debug版本,就会出现两次错误告警,点击忽略后,有些工程能够正常运行,有一些就不能得到正确的结果,但是在新工程的release版本中,一点问题都没有。奇怪了 另外,我对上面有位朋友的建议回复一下:我使用的是正版的vc,单位买的。vc本身应该没有任何问题。我刚才调试了一下,在debug版本下出现的出错提示为:file:appcore.cppline:85按“重试”进入后,发现是appcore.cpp85行的这一句出错:ASSERT(AfxGetThread()==NULL);继续运行,在appcore.cpp的第92行又出现一次错误告警:ASSERT(AfxCurrentWinApp=NULL)需要说明的是:我主要开发的是一个dll,然后在新建的对话框工程里使用这个dll,以上出现两次告警只是在对话框程序刚刚运行的时候出现的。而在对话框工程的初始化时,我除了调用CoInitialize(NULL)进行初始化以外,没有其他特殊的操作。为什么会出现这个现象呢? 我有次写程序也碰到这种问题~后来发现是一个int变量忘了初始化~_~ 在degug版本下测试程序无任何错误时,再用release的版本运行才是 软件开发一般是在DEBUG版本下面调试,等没有错误在编译成RELEASE版本发布 你可以到 http://search.csdn.net/search.asp 去找看看以前的帖子 以前的讨论好像对我这个问题无效。我刚才把调用工程设置成mfc静态连接,这个报警消失了。但是在实际调用的时候,我有一个函数是传入了CString的引用,在函数内部将返回值赋值给这个引用变量,这个时候却出错,为什么?同样,release可以正确返回。 狂晕!我新建一个DLL的工程,一切问题就搞定了,真是tmd郁闷。我先把这个帖子放着,希望别人不要犯我这种弱智错误。过几天揭帖。 mfc源码中,为何好多地方都加上 extern c 呢?作用是什么? socket问题(服务器关闭,还是可以收到客户端发的数据) 如何调节wave的音量? 现在java那么普及了,用mfc编程还有前途吗? 如何将表中某列汇总结果存入变量?? 关于视窗类别注册? COM组件在IIS中的释放问题,在线等待!!!! ATL 菜单按钮项隐藏后刷新又出现了 跪求 VC画图问题 关于VC++6.0MFC,打开一张jpg图片并且以缩略图的形式显示在列表控件里 求助,利用Mutex 进行程序多重启动问题。 高分:有关vc编程和微软拼音输入法?
==============
其实在release中,基本上没有任何错误检查了
如果是的话, 一般都会出这个问题,我有不少同学也遇到过. 后来用了英文版都好了建议你快换成英文版, 绝对不会再出这种问题.
不过,我有一次遇到的情况是
我在一台机器上用release编译后把代码交给另一个人在另一台机器上编译
release版没有问题,但用debug就不行了,把原来release里的.obj文件删除
在release又不行了,错误是路径问题原来vc会使用原来编译的.obj文件,虽然代码文件的位置改变了
我做的是一个dll,使用了ole db,作用相当于一个数据库访问的中间件。这个Release版本已经稳定运行两年多了,还没有发现什么不稳定的现象。
但是问题不在这里,而是使用这个dll的工程。
同样都使用这个dll的release版本,如果新创建一个工程,使用这个dll,新工程如果运行debug版本,就会出现两次错误告警,点击忽略后,有些工程能够正常运行,有一些就不能得到正确的结果,但是在新工程的release版本中,一点问题都没有。奇怪了
file:appcore.cpp
line:85
按“重试”进入后,发现是appcore.cpp85行的这一句出错:ASSERT(AfxGetThread()==NULL);
继续运行,在appcore.cpp的第92行又出现一次错误告警:ASSERT(AfxCurrentWinApp=NULL)需要说明的是:
我主要开发的是一个dll,然后在新建的对话框工程里使用这个dll,以上出现两次告警只是在对话框程序刚刚运行的时候出现的。
而在对话框工程的初始化时,我除了调用CoInitialize(NULL)进行初始化以外,没有其他特殊的操作。为什么会出现这个现象呢?
后来发现是一个int变量忘了初始化~_~
我刚才把调用工程设置成mfc静态连接,这个报警消失了。但是在实际调用的时候,我有一个函数是传入了CString的引用,在函数内部将返回值赋值给这个引用变量,这个时候却出错,为什么?同样,release可以正确返回。
我新建一个DLL的工程,一切问题就搞定了,真是tmd郁闷。我先把这个帖子放着,希望别人不要犯我这种弱智错误。过几天揭帖。