diff options
author | Wohlstand <admin@wohlnet.ru> | 2017-10-18 03:29:38 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2017-10-18 03:29:38 +0300 |
commit | 9177c69baea368dd3561249372995bd7a128358a (patch) | |
tree | 9e41638174dcc16ddd6c3f667ae1541ba3de9e0d /src/adlmidi_private.hpp | |
parent | 7b2b8d796bc4c5ab8a60a55e302196f811a6b2a0 (diff) | |
download | libADLMIDI-9177c69baea368dd3561249372995bd7a128358a.tar.gz libADLMIDI-9177c69baea368dd3561249372995bd7a128358a.tar.bz2 libADLMIDI-9177c69baea368dd3561249372995bd7a128358a.zip |
Avoid possible UTF8 vs ANSI trouble on Windows
Diffstat (limited to 'src/adlmidi_private.hpp')
-rw-r--r-- | src/adlmidi_private.hpp | 8 |
1 files changed, 8 insertions, 0 deletions
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 <windows.h> #endif #include <vector> @@ -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; |