On 2017-10-11 23:00, Pure Data Computer Music System SVN repository wrote:
Don't use sys_fopen with MSVC as its FILE struct is not compatible.
hmm, i'm pretty sure this is the wrong approach. the sole purpose of sys_fopen() is to help Windows users (as it wraps the use of non-ascii filenames!). on non-windows platforms sys_fopen() is basically identical to fopen().
i guess the problem you are having is hat the FILE handle returned by _fopen() depends on the libC implementation, and if Pd has been linked against a different libc implementation than midifile, they might be "incompatible". e.g. this is the reason why Pd provides a sys_fclose() (since running flose() on a sys_fopen()ed file would leak ressources).
since there's a number of externals that are successfully using sys_fopen()/sys_fclose(), wonder what goes wrong in midifile. what exactly is meant by "incompatibility"?
since when does the problem exist? (e.g. did something change in the Pd build process that triggered that error?)
is there some bug-report against Pd about sys_fclose() being unusable on W32?
fgasmr IOhannes