MFC程序代码运行出的结果与可执行文件运行的结果不同

我用MFC编写的程序,调试编译都通过了。用代码运行出的结果是正确的,但当用debug目录下生成的.exe可执行程序运行出的结果却和代码运行出的结果不同。这是为什么呢?可执... 我用MFC编写的程序,调试编译都通过了。用代码运行出的结果是正确的,但当用debug目录下生成的.exe可执行程序运行出的结果却和代码运行出的结果不同。这是为什么呢?可执行文件不也是这份代码生成的嘛,为什么还会出现这种情况。请教有遇到过的朋友们给予指点,谢谢! 展开
 我来答
a349160476
2012-11-30 · 超过14用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:42.9万
展开全部
告诉你个好办法,把你需要的信息都写入文件里面去。关键的值都详细的打印到文件里面去。然后一眼就能看出哪边有区别。
至于怎么写进文件,用MFC的文件读写函数就可以了。
更多追问追答
追问
我就是把需要的信息都写入了一个数据库中的,现在是发现了两种情况下运行出结果的不同之处了,但就是找不到根本的原因。
追答
你不能看结果, 你要看过程。
举个例子,比如你的程序有 GetFromDB(),handleDate 和 SetDataToDB(),还有个函数是写数据到文件的PrintInfo()
1 GetFromDB()
{
//从DB获取到数据后,写进文件中,用来对比

PrintInfo("你的数据");
}
2 handleDate()
{

PrintInfo("处理前的数据");

.....
.....
PrintInfo("处理后的的数据");
}
3 SetDataToDB()
{
PrintInfo("准备放入DB的数据");
.....
.....
PrintInfo("放入DB后的的数据");

}
然后你就看文件那边出数据不对劲,再把日志在局部打详细点。就OK了
89694278
2012-12-03 · TA获得超过502个赞
知道答主
回答量:133
采纳率:0%
帮助的人:72.7万
展开全部
再问你的具体情况呢,不知道你执行的是什么操作。有时候因为DEBUG调试的时候,进程的访问顺序,跟内存的变化都跟直接运行exe程序不同的呢
追问
我的程序的功能是处理数据库中的数据,两种情况下结果会不同。直接运行.exe程序产生的结果库中的信息会比运行代码产生的信息少了很多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
warren524
2012-11-29
知道答主
回答量:23
采纳率:0%
帮助的人:11.3万
展开全部
你的代码运行不会是在Release下运行的吧,那样肯定代码运行的有可能会和debug目录下exe运行的不同,debug下有可能是你之前的版本
追问
确定是在debug下运行的代码。并且当在Release下运行代码产生的结果与.exe可执行文件产生的结果也是不同的。
追答
你把Project Setting里面的中C/C++下的优化改成禁止试试,还有这个问题吗?另外编译器里面直接运行代码,程序执行完毕后,有的编译器会等待你按任意键结束,如VS等,有的不会,项dev C++就是。但是在debug目录下的exe,是不会等你输任意键的,执行完就自己关了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式