aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_private.hpp
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2017-10-18 03:29:38 +0300
committerWohlstand <admin@wohlnet.ru>2017-10-18 03:29:38 +0300
commit9177c69baea368dd3561249372995bd7a128358a (patch)
tree9e41638174dcc16ddd6c3f667ae1541ba3de9e0d /src/adlmidi_private.hpp
parent7b2b8d796bc4c5ab8a60a55e302196f811a6b2a0 (diff)
downloadlibADLMIDI-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.hpp8
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;