Вам нужно узнать, что делает strcat()
.Эта линия никогда не будет работать.На самом деле, даже лучше, НИКОГДА НЕ ИСПОЛЬЗОВАТЬ strcat()
.Это дерьмо.
MIDIfile << strcat(header, strcat(track_header, track_data));
У вас есть двоичные буферы шестнадцатеричных данных, просто используйте функцию write()
:
MIDIfile.write(header, sizeof(header));
...
и записывайте один буфер за раз.