Pro*_*ica 8 c interop file-format amiga
当我尝试使用EA iffw.c库来编写IFF文件时,我无法通过StartWGroup()调用.它在IFFWriteBytes()中失败,因为context-> ckHdr.ckSize为零.在IFFWriteBytes()里面有一个if(),它检查(size)!= szNotYetKnown.(szNotYetKnown是一个常量.)这个例子似乎表明它应该有效,但我看不出如何.IFFWriteBytes()返回CLIENT_ERROR因为nBytes是4 - 我试图保存32位int.
我失败的代码:
outfp = fopen(outfile, "wb");
ifferr = OpenWIFF(outfp, &filec, szNotYetKnown);
if (ifferr) {
return 2;
}
ifferr = StartWGroup(&filec, LIST, sizeof (ID_NATAMI_FLASH), ID_NATAMI_FLASH, &listc);
if (ifferr) {
printf("ifferr: %d\n", ifferr);
return 3;
}
Run Code Online (Sandbox Code Playgroud)
最后一次失败,StartWGroup().
IFF和XML一样简单,我可以在没有库的情况下生成它,但是使用曾经常见且经过良好测试的库会更好.
问题不是关于Amiga,但这种文件格式在Amiga上很受欢迎.顺便说一句,你知道DjVU,RMFF,AIFF,RIFF和许多其他格式是IFF还是略有变化?
更新: 易于阅读IFF描述.
小智 2
不声称了解有关此特定库的任何信息,但查看函数参数,我认为您可能在 StartWGroup 中输入了错误的大小。
在 iifw.cpp: 中IFFP StartWGroup( GroupContext* parent, int groupType,int groupSize,int subtype, GroupContext * newtmp),第三个参数 nameStartWGroup指示groupSize组的大小LIST,而不是子组的大小sizeof(ID_NATAMI_FLASH)。
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |