簡體   English   中英

嘗試編寫塊時在iffw庫中獲取錯誤

[英]Get error in the iffw library when trying to write chunk

當我嘗試使用EA iffw.c庫編寫IFF文件時,我無法通過StartWGroup()調用。 由於context-> ckHdr.ckSize為零,因此它在IFFWriteBytes()中失敗。 在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;
}

最后一個失敗,StartWGroup()。

IFF和XML一樣簡單,可以不用一個庫就可以生成它,但是最好使用曾經很常見且經過測試的庫。

問題不是關於Amiga的,而是這種文件格式在Amiga上很流行。 順便說一句,您是否知道DjVURMFFAIFF,RIFF和許多其他格式是IFF還是稍有變化

更新易於閱讀的IFF描述

我並不聲稱對這個特定的庫一無所知,而是查看函數參數,我認為您可能在StartWGroup中輸入了錯誤的大小。

從iifw.cpp: IFFP StartWGroup( GroupContext* parent, int groupType,int groupSize,int subtype, GroupContext * newtmp)IFFP StartWGroup( GroupContext* parent, int groupType,int groupSize,int subtype, GroupContext * newtmp)的第三個參數名稱是StartWGroupgroupSize指示組LIST的大小,而不是子組的大小sizeof(ID_NATAMI_FLASH)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM