挑战<<头疼死了:工程debug版与release版都编译通过,运行时debug版正常,release版出错?>> 1。工程代码可能有问题2。Release去掉了调试信息,对代码进行了优化,你可以把优化选项关闭看看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1。工程代码可能有问题2。Release去掉了调试信息,对代码进行了优化,你可以把优化选项关闭看看3。多用Try Catch release 对变量初始化和DEBUG是不一样的,我以前忘了赋初值,结果就出现这样的莫名其妙 to :superprogman:没有与这有关吗? 一般是由于指针没初始话或溢出(for多了个=,给的char buf太小等等)。 一般是某个变量没有赋初始值,引起数组或指针越界。在DEBUG版中,VC会缺省赋一个初始值,一般是0,但在RELEASE版本中,如果没有初始值,那么这个变量的值是不确定的,可能是负数。还有一种情况是,在DEBUG版本中,VC在每个变量后保留一点空间,如short int类型,实际运行时,在内存中可能有占据4个字节,如果你把long int赋给它,不会产生越界,但在RELEASE版本中,就没有这么幸运了,short int在内存中就占两个字节,其它变量紧跟在它后面,如果赋给它一个long int,就把后面的变量值冲掉了。如果是多线程程序,看看RELEASE版本链接的库对不对。这是我第一次回答问题,请多多关照。 检查 ASSERT 语句,要注意,release下ASSERT是不执行的,很多类似问题缘由于此。 另外我发现如果直接用CFileDialog而不给他分配strFileName的话也会有这个问题。 怎样把ole封装成一个盒子? 调用动态链接库后程序自动退出问题? 求一张Direct11原理图 怎样截获word “保存” 消息 关于vc工作的问题 学习VC的烦恼,希望大家给个办法 中国少数民族信息产业之路 odbc-win32-API函数调用时,头文件报错 小菜鸟跪求udp接收程序的注解 怎样用ado获取一个表中第i个字段的名字? 对话框应用程序中的PreCreateWindow为何不起作用? 请教:如何画带有单箭头,双箭头的线?急!
2。Release去掉了调试信息,对代码进行了优化,你可以把优化选项关闭看看
3。多用Try Catch
没有
与这有关吗?
还有一种情况是,在DEBUG版本中,VC在每个变量后保留一点空间,如short int类型,实际运行时,在内存中可能有占据4个字节,如果你把long int赋给它,不会产生越界,但在RELEASE版本中,就没有这么幸运了,short int在内存中就占两个字节,其它变量紧跟在它后面,如果赋给它一个long int,就把后面的变量值冲掉了。
如果是多线程程序,看看RELEASE版本链接的库对不对。这是我第一次回答问题,请多多关照。