Domanda

Quando sto cercando di usare il Biblioteca EA IFFW.C Per scrivere un file IFF, non riesco a superare la chiamata startWGroup (). Fallisce in ifwritebytes () perché il contesto-> ckhdr.cksize è zero. All'interno IffWriteBytes () c'è un if () che controlla quella (dimensione)! = Sznotyet noto. (Sznotyet -Townown è una costante.) Il esempio Sembra indicare che dovrebbe funzionare, ma non riesco a vedere come. Iffwritebytes () restituisce client_error perché nBytes è 4 - Sto cercando di salvare un int 32 bit.

Il mio codice fallito:

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;
}

L'ultimo fallisce, startWgroup ().

IFF è, come XML, abbastanza semplice da poterlo semplicemente generare senza una libreria, ma sarebbe bello sfruttare una libreria una volta comune e ben testata.

La domanda non riguarda davvero Amiga, ma questo formato di file era popolare su Amiga. A proposito, lo sapevi Djvu, RMFF, Aiff, riff e molti altri formati sono Iff o lievi varianti?

Aggiornare: Descrizione IFF facile da leggere.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top