标题:俄罗斯方块程序编译和运行都没问题,可debug中的.exe文件却运行不了
取消只看楼主
无名可用
Rank: 4
等 级:业余侠客
帖 子:79
专家分:259
注 册:2010-7-27
结帖率:100%
已结贴  问题点数:20 回复次数:2 
俄罗斯方块程序编译和运行都没问题,可debug中的.exe文件却运行不了

这是双击.exe文件后弹出的错误对话框..
引起错误的代码我已经找到了,是Type.h中的vector<Block*> blocks变量为空,所以当程序执行类似blocks[0]->GetR()语句时引起vector下标出界的错误.我在Type.cpp中'Type的构造方法'的最后加上了cout<<blocks.size()<<endl语句,用以查看blocks的大小。
打开决绝方案运行可以正常程序,但运行debug文件中的.exe文件后就出错,请大家帮我看看原因.  

  各种形状和地图都是通过文件生成的,文件都在smallGame2下的file文件夹下
搜索更多相关主题的帖子: 俄罗斯方块 debug exe 文件 
2010-10-12 22:19
无名可用
Rank: 4
等 级:业余侠客
帖 子:79
专家分:259
注 册:2010-7-27
得分:0 
忘了传程序了。。
smallGame2.rar (1.57 MB)
2010-10-12 22:23
无名可用
Rank: 4
等 级:业余侠客
帖 子:79
专家分:259
注 册:2010-7-27
得分:0 
我又仔细找了一下错误原因,发现原来是读文件时出现了异常,我的文件中都是‘0’‘1’,而读文件时却成了‘?’,
,我的程序中遇‘1’就生成new Block(),并放入vector<Block*> blocks中;因为读取的都是‘?’,所以没生成Block,因此vector就为空,接下来对vector操作时就引发了下标越界的错误。
  我把程序稍微改了一点,先显示从文件读取的每一个字符。。我不明白为什么不能正确读出文件中的字符,难道和字符编码有关?还有一点我也令我很疑惑,为什么在release中可以正确读出文件中的字符,而到dubeg中的.exe文件就不行了?如果和字符的编码有关,那也应该两者都出现同样的错误啊..
  这是我改了之后的程序:
smallGame2.rar (1.59 MB)

2010-10-13 13:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-322731-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.448789 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved