作者atst (电脑无法阻止人类做蠢事)
看板MacDev
标题Re: [问题] 读取bmp影像档
时间Fri Jul 27 12:57:25 2007
※ 引述《wcmein (浪漫铁人8号 )》之铭言:
: 请问一下
: 我利用C++ 藉由 opengl 读取影像档
: 我在windows的VC++6.0 下可以读取
: 可是在mac 的XCode (C++ tool) 下就无法读取了
: 请问是何种原因
: 以下为source code 取材自opengl超级圣经 第二版
: ....<余文删除>
在这里,稍微讲一下,怎麽去找出程式的问题。
之前的推文里有讲过,当程式有问题的时候,第一步是在可疑的地方设中断点
仔细看看程式真正在跑的流程为何。
通常在这一步过後,大多数的程式码,都能找出问题所在。
其中许多问题,可立即解决。
可是以这一程式来说,问题并不光是程式本身,还包括了输入的资料,
这时候,光检视程式本身,不容易找出问题。
此时开发者所要做的事情有二:
1. 检查输入资料的格式。
2. 预测输入资料後的结果。
这是什麽意思呢?
举例而言:
一个MPEG-2 TS 的档案,他的Header的开头必定是0x0000000047.
我知道这点,当我要剖析MPEG-2 TS时,我便预期到,
当我将MPEG-2 TS的资料读到Buffer时,Buffer的开头必定为0x0000000047
而在我的程式实际可能如下:
if(buffer[4] != 0x47)
{
Assert(...);
}
那当我的程式从检查点退出时,检视buffer的内容,是否为我所预期的值,
就可知道可能的问题点在那。
更进一步来说,如果buffer的值与输入资料不同,只有两个可能:
1. 我写错.
2. 资料不正确。
(而且通常都是1.比较可能....)
这时候,要做的事就是:找一个能开binary的编辑器,仔细看看档案内到底是怎麽写的
(我是都使用HexEdit啦...)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.115.2
※ 编辑: atst 来自: 140.112.115.2 (07/27 13:14)