VC基础问题!!?(欢迎讨论)

mybilly2016 2002-07-23 07:12:44
VC++为什么调试时的结果和编译连接后的结果不同!!!
...全文
40 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
mybilly2016 2002-07-25
  • 打赏
  • 举报
回复
To holterli(holterli):
好的!你有什么好建议也可发给我!
E_mail:cbj0705@msn.com!
mybilly2016 2002-07-24
  • 打赏
  • 举报
回复
同意lanfan(蓝色的帆)的说法!
因为我在Send()之前加一个Sleep()已解决这个问题!
但不知是否还有其他隐患问题呢?
lanfan 2002-07-24
  • 打赏
  • 举报
回复
我也遇到类似的问题,我想是因为在调试和执行时的环境不同造成的。在调试的时候编译器要保护很多信息、堆栈等,还要保留调试中断等,因此在调试状态下执行的程序和运行时是有区别的,最好改善你的调试方法,在用WinSock进行网络编程时网络数据通常来得很快而你在单步执行的时候就可能出现这种情况:当一个消息在套接字上产生后可能要很长时间才执行到读取数据的这一步,此时数据的有效性就值得怀疑了。
lanfan 2002-07-24
  • 打赏
  • 举报
回复
我也遇到类似的问题,我想是因为在调试和执行时的环境不同造成的。在调试的时候编译器要保护很多信息、堆栈等,还要保留调试中断等,因此在调试状态下执行的程序和运行时是有区别的,最好改善你的调试方法,在用WinSock进行网络编程时网络数据通常来得很快而你在单步执行的时候就可能出现这种情况:当一个消息在套接字上产生后可能要很长时间才执行到读取数据的这一步,此时数据的有效性就值得怀疑了。
greenyard 2002-07-24
  • 打赏
  • 举报
回复
应该还是逻辑有问题,F5运行的时候如果设置断点的话,如果是非阻塞的通讯的话,有可能引起得到OnReceive消息的主程序执行的位置不同
yspei 2002-07-24
  • 打赏
  • 举报
回复
up
yhb4 2002-07-24
  • 打赏
  • 举报
回复
up
holterli 2002-07-24
  • 打赏
  • 举报
回复
我在编写的过程中也遇到这种问题,希望你能在解决这个问题后,能告诉我一声,后者我们共同研讨,我得邮箱为:liyun819@21cn.com
我不是大明 2002-07-24
  • 打赏
  • 举报
回复
当然了,在MFC的代码里面就分调试用和非调试用!
xusheng 2002-07-24
  • 打赏
  • 举报
回复
你好!
我在开发中也遇到过这种情况,一般有两种情况,1)程序代码前后不同步:因为调试时是一条语句一条语句运行的,所以不会出现错误。
2)在程序代码中,你可能从内存中释放了某些重要的变量。
仅供参考
Good Luck
nana11 2002-07-24
  • 打赏
  • 举报
回复
是不是时间问题?在调试和运行的时候运行的时间不一样,所以出错。
mybilly2016 2002-07-24
  • 打赏
  • 举报
回复
当我把发送的包的尺寸变大时,又出现了那种情况!
不知要怎样来保护这一部分内存呢?
难道VC6中CSocket类不是异步的!
wuxuan 2002-07-24
  • 打赏
  • 举报
回复
重新安装你的开发环境。
wanglei888 2002-07-24
  • 打赏
  • 举报
回复
同意楼上的观点。对异步Socket而言,本来会收到5个OnRecevie消息的数据在调试状态下可能只会收到一个OnReceive消息,因为Socket是数据驱动的。我估计你的错误就是在这儿。
mybilly2016 2002-07-23
  • 打赏
  • 举报
回复
因为我自定义了许多包,所以在传输的数据中加了校验信息,在接收方先判断校验信息,然后产生不同的分支!当然就显示不同的信息了!
编译连接不是所有的包接收时的信息不同,只是部分不同!
如接收20个包,前面10个包所显示的信息相同!而后面10个却不同!
dy_paradise 2002-07-23
  • 打赏
  • 举报
回复
再说详细点儿,你说的不同是指怎样的不同呢
sjzxyg 2002-07-23
  • 打赏
  • 举报
回复
逻辑上对吗
mybilly2016 2002-07-23
  • 打赏
  • 举报
回复
我是在学做一个用WinSocket传输文件时,我用IF语句判断显示信息,在跟踪调试运行时显示的信息和编译连接成.exe文件或按F5运行时显示的信息不同!而不是Debug版本和Release版本的不同!我不知道是为什么?
nscboy 2002-07-23
  • 打赏
  • 举报
回复
romanticist(让我拥抱你入梦)说的语句是由于调试的部分附加代码,它不会被编译到发行版本中
nscboy 2002-07-23
  • 打赏
  • 举报
回复
具体点。如果指大小的话,那时因为调试版中有许多调试信息。所以非常大
加载更多回复(3)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧