From 9177c69baea368dd3561249372995bd7a128358a Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Wed, 18 Oct 2017 03:29:38 +0300 Subject: Avoid possible UTF8 vs ANSI trouble on Windows --- src/adlmidi_private.hpp | 8 ++++++++ src/midiplay/wave_writer.c | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index e039f85..5d5da0a 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -45,6 +45,7 @@ typedef __int32 ssize_t; #endif #endif + #include #endif #include @@ -343,7 +344,14 @@ public: void openFile(const char *path) { + #ifndef _WIN32 fp = std::fopen(path, "rb"); + #else + wchar_t widePath[MAX_PATH]; + int size = MultiByteToWideChar(CP_UTF8, 0, path, std::strlen(path), widePath, MAX_PATH); + widePath[size] = '\0'; + fp = _wfopen(widePath, L"wb"); + #endif _fileName = path; mp = NULL; mp_size = 0; diff --git a/src/midiplay/wave_writer.c b/src/midiplay/wave_writer.c index e2c9611..0bfaf68 100755 --- a/src/midiplay/wave_writer.c +++ b/src/midiplay/wave_writer.c @@ -6,7 +6,7 @@ #include #include -#ifdef MUSPLAY_USE_WINAPI +#ifdef _WIN32 #include #endif @@ -53,7 +53,7 @@ int wave_open( long sample_rate, const char* filename ) return -1; } -#ifndef MUSPLAY_USE_WINAPI +#ifndef _WIN32 file = fopen( filename, "wb" ); #else wchar_t widePath[MAX_PATH]; -- cgit v1.2.3