Obtenez une erreur dans la bibliothèque IFFW lorsque vous essayez d'écrire un morceau

StackOverflow https://stackoverflow.com/questions/8919368

  •  30-10-2019
  •  | 
  •  

Question

Quand j'essaye d'utiliser le Bibliothèque ea iffw.c Pour écrire un fichier IFF, je ne peux pas passer l'appel startwgroup (). Il échoue dans iffWriteBytes () car context-> ckhdr.cksize est nul. À l'intérieur d'IffWriteBytes (), il y a un if () qui vérifie cette (taille)! = Sznotyet connu. (sznotyet connu est une constante.) Exemple semble indiquer que cela devrait fonctionner, mais je ne vois pas comment. IffWriteBytes () Renvoie le client_error car nbytes est 4 - j'essaie d'enregistrer un INT 32 bits.

Mon code défaillant:

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

Le dernier échoue, startWGroup ().

IFF est, comme XML, assez simple pour que je puisse simplement le générer sans bibliothèque, mais il serait bien d'utiliser une bibliothèque autrefois commune et bien testée.

La question ne concerne pas vraiment Amiga, mais ce format de fichier était populaire sur Amiga. Au fait, saviez-vous Djvu, RMFF, AIFF, RIFF et de nombreux autres formats sont des variations IFF ou légères?

Mise à jour: Description Facile à lire IFF.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top