gpt4 book ai didi

c - 尝试写入 block 时在 iffw 库中出错

转载 作者:太空狗 更新时间:2023-10-29 17:04:11 25 4
gpt4 key购买 nike

当我尝试使用 EA iffw.c library要编写 IFF 文件,我无法通过 StartWGroup() 调用。它在 IFFWriteBytes() 中失败,因为 context->ckHdr.ckSize 为零。在 IFFWriteBytes() 内部有一个 if() 检查 (size) != szNotYetKnown。 (szNotYetKnown 是一个常量。) example似乎表明它应该工作,但我看不出如何。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;
}

最后一个失败,StartWGroup()。

IFF 与 XML 一样,非常简单,我可以在没有库的情况下生成它,但如果使用曾经很常见且经过良好测试的库会很好。

问题并不是关于 Amiga,但这种文件格式在 Amiga 上很流行。对了,你知道吗DjVU , RMFF , AIFF, RIFF and many other formats are IFF or slight variations

更新:easy to read IFF description .

最佳答案

没有声称对这个特定库有任何了解,但查看函数参数我认为您可能在 StartWGroup 中输入了错误的大小。

来自 iifw.cpp:IFFP StartWGroup( GroupContext* parent, int groupType,int groupSize,int subtype, GroupContext * newtmp)StartWGroup 的第三个参数名称是groupSize 表示组 LIST 的大小,而不是子组大小 sizeof(ID_NATAMI_FLASH)

关于c - 尝试写入 block 时在 iffw 库中出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com