• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > debug和release有什么不同?

debug和release有什么不同?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了debug和release的区别,debug release,vs中debug和release,vs debug release,debug跟release等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: debug和release有什么不同?
描述:

本人有一程序,用于播放实时图像和历史回放,实时图像没问题,有问题的是历史图像(debug下正常,release不正常):主要差别为:实时播放时,系统发过来的图像信息前有6个字节的信息头,回放存储的文件是没有这6个信息头的,于是我在读回放文件时,人为加了6个字节的头:
此段程序用于从文件中读取数据,放入对应buffer中:
  f = fopen(fileN, "rb" );
if (f==NULL) 
    {
       return 0;
}
fseek(f, current_size, SEEK_SET);
if (fread(s, sizeof( char ), 2, f) > 1)
{
unsigned short size = s[0]*256 +s[1];
if (size>0)
{
m_csRecv[WINDOWSNUM].Lock();
fread(vv[WINDOWSNUM].data, sizeof( char ), size, f);
memcpy(vv[WINDOWSNUM].data+6,vv[WINDOWSNUM].data,size);
vv[WINDOWSNUM].data[0] = HIBYTE(writenum);
vv[WINDOWSNUM].data[1] = LOBYTE(writenum);
vv[WINDOWSNUM].data[2] = HIBYTE(size+6);
vv[WINDOWSNUM].data[3] = LOBYTE(size+6);//11
vv[WINDOWSNUM].data[4]=0;
vv[WINDOWSNUM].data[5] = 0;/**/
vv[WINDOWSNUM].len = size+6;//
vv[WINDOWSNUM].m_picHwnd = hwnd;
writenum++;
if(recvlenall[WINDOWSNUM]+size+6<Q_SIZE)//
{
memcpy(recvbufferall[WINDOWSNUM]+recvlenall[WINDOWSNUM],vv[WINDOWSNUM].data,size+6);//
recvlenall[WINDOWSNUM]+=size+6;//11
}
else
{
int endlen = recvlenall[WINDOWSNUM]+size+6;//11
int leavelen = Q_SIZE - recvlenall[WINDOWSNUM];
memcpy(recvbufferall[WINDOWSNUM]+recvlenall[WINDOWSNUM],vv[WINDOWSNUM].data,leavelen);
recvlenall[WINDOWSNUM]+=leavelen;
recvlenall[WINDOWSNUM] = 0;
unsigned long headlen = endlen%Q_SIZE;
if((headlen < readlp[WINDOWSNUM])||(headlen == readlp[WINDOWSNUM]))
{
memcpy(recvbufferall[WINDOWSNUM],vv[WINDOWSNUM].data+leavelen,headlen);
recvlenall[WINDOWSNUM] = headlen;
}
}//else
m_csRecv[WINDOWSNUM].Unlock();
}
fclose(f);
return current_size+size+2;
}
问题在这段代码:
memcpy(vv[WINDOWSNUM].data+6,vv[WINDOWSNUM].data,size);
vv[WINDOWSNUM].data[0] = HIBYTE(writenum);
vv[WINDOWSNUM].data[1] = LOBYTE(writenum);
vv[WINDOWSNUM].data[2] = HIBYTE(size+6);
vv[WINDOWSNUM].data[3] = LOBYTE(size+6);//11
vv[WINDOWSNUM].data[4]=0;
vv[WINDOWSNUM].data[5] = 0;/**/
vv[WINDOWSNUM].len = size+6;//
vv[WINDOWSNUM].m_picHwnd = hwnd;
writenum++;
加上这6个字节,则历史回放不正常,不加需要修改记录时文件的存储格式,可以做到播放正常,但是和以往软件不兼容,我希望在能和以往软件兼容,但是这段代码应该没问题,因为debug下他是好的。可是到底问题在哪里呢,请高手指点!


解决方案1:

gz

解决方案2:

up

解决方案3:

未初始化的变量在debug下可能是有一个初始值的,因为是VC在帮你管理内存,但是Release就可能是任意值了,要看该位置以前做了什么。
你仔细检查一下这加上去的六个字节的值对不对,会不会影响处理端。

解决方案4:

Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Debug版本出错Release版本运行正常是怎么回事?
  • WM_NCMOUSEMOVE消息在Release和Debug版本下出现不同现象
  • 使用COM时编译时通过,DEBUG运行不了,RELEASE可以运行!
  • Debug和Release版本编译问题急!急!急!急!
  • Debug版ATL可用regsvr32正常注册,而Release版注册失败,为什么?
  • 串口程序debug版正常,release版读不出数据
  • debug可以通过运行,release为什么不行?
  • MFCActiveX在Release时报错未能注册输出,但是DEBUG下正常
  • 关于Debug和Release编译出错问题
  • 在Debug下没有问题,Release下出错

相关文章

  • 2017-06-04 大家帮忙看看这是个什么错误?为什么?
  • 2017-06-04 这样使用COM为什么出错?急等ing~~~
  • 2017-06-05 求助,如何触发页面元素的onmouseover事件?
  • 2017-06-04 outputc,出错,为什么?
  • 2017-06-05 100分请帮我,我用MFC写的ActiveX控件怎么注册呢?
  • 2017-06-04 VC中水晶表报怎么连接数据库?
  • 2017-06-05 DLL隐式链接总是报错
  • 2017-06-05 ATL建的复合控件怎么不响应WM_INITDIALOG消息??
  • 2017-06-04 如何解决CImageList太耗内存
  • 2017-06-04 实现这样一个简单的功能怎么做?等待ing

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • CoInitializeSecurity
    • 请问大家没有读取word的开源库,不用安装Office也可以使用
    • 求助调用WebBrowser控件
    • 在MFC开发的ActiveX控件中,ActiveX控件与其属性页是怎么传递消息的?高手请进!!
    • 多线程的OCX,读写串口的,在VB中使用经常出问题,大家给点建议
    • 如何让进程不被杀死?
    • 请教COM相关的多个对象使用的问题?
    • 有关Csocket的问题(多线程下载)
    • 一个自动化传参数的问题?高手进!急!
    • 各位高手请帮助诊断一下这个程序:

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有