This is a very interesting error.
This could possibly be due to an incompatibility between the different file-io systems available. By default MXFLib uses low-level I/O rather than the more normal stream I/O when compiled with Visual Studio. This is because it has support for > 4GByte files in earlier versions of the compiler.
Try adding the following section to system.h (roughly line 234) in place of the normal versions:
Code:
#ifndef MXFLIB_NO_FILE_IO
typedef FILE *FileHandle;
inline int FileSeek(FileHandle file, UInt64 offset) { return _fseeki64(file, offset, SEEK_SET); }
inline int FileSeekEnd(FileHandle file) { return _fseeki64(file, 0, SEEK_END); }
inline size_t FileRead(FileHandle file, unsigned char *dest, size_t size) { return fread(dest, 1, size, file); }
inline size_t FileWrite(FileHandle file, const unsigned char *source, size_t size) { return fwrite(source, 1, size, file); }
inline int FileGetc(FileHandle file) { UInt8 c; return (FileRead(file, &c, 1) == 1) ? (int)c : EOF; }
inline FileHandle FileOpen(const char *filename) { return fopen(filename, "r+b" ); }
inline FileHandle FileOpenRead(const char *filename) { return fopen(filename, "rb" ); }
inline FileHandle FileOpenNew(const char *filename) { return fopen(filename, "w+b"); }
inline bool FileValid(FileHandle file) { return (file != NULL); }
inline bool FileEof(FileHandle file) { return feof(file) ? true : false; }
inline UInt64 FileTell(FileHandle file) { return _ftelli64(file); }
inline void FileClose(FileHandle file) { fclose(file); }
inline bool FileExists(const char *filename) { struct stat buf; return stat(filename, &buf) == 0; }
#endif //MXFLIB_NO_FILE_IO