From: Roger P. <rog...@ya...> - 2014-08-29 15:56:53
|
(onscripter-en/DirectReader.cpp, abridged with the irrelevant stuff cut out.) g++ -c -std=c++98 -O3 -fomit-frame-pointer -pipe -Wpointer-arith -DOV_EXCLUDE_STATIC_CALLBACKS -Wall -DUSE_X86_GFX -D_GNU_SOURCE=1 -Dmain=SDL_main -D_GNU_SOURCE=1 -Dmain=SDL_main -DWIN32 -DUSE_MESSAGEBOX -DUSE_OGG_VORBIS short_Reader.cpp /* CUT short_Reader.cpp */ #include <windows.h> #include <wchar.h> #include <stdio.h> #include <cstdio> #include <cwchar> #include <cstdlib> FILE *xfopen(const char *path, const char *mode) { //NOTE: path is likely SJIS, but if called by getFileHandle on // a non-Windows system, it could be UTF-8 or EUC-JP FILE *fp = NULL; fp = ::fopen( path, mode ); //printf("%s\n", fp ? "found" : "not found"); if (fp) return fp; // Windows uses UTF-16, so convert for Japanese characters else { wchar_t *u16_tmp, *umode; //convert the file path to from Shift-JIS to Wide chars (Unicode) int wc_size = MultiByteToWideChar(932, 0, path, -1, NULL, 0); u16_tmp = new wchar_t[wc_size]; MultiByteToWideChar(932, 0, path, -1, u16_tmp, wc_size); //need to convert the file mode too wc_size = MultiByteToWideChar(932, 0, mode, -1, NULL, 0); umode = new wchar_t[wc_size]; MultiByteToWideChar(932, 0, mode, -1, umode, wc_size); fp = _wfopen( u16_tmp, umode ); //printf("checking utf16 filename: %s\n", fp ? "found" : "not found"); delete[] u16_tmp; delete[] umode; if (fp) return fp; } return fp; } /* END short_Reader.cpp */ ________________________________ From: Eli Zaretskii <el...@gn...> To: Roger Pepitone <rog...@ya...> Cc: min...@li... Sent: Monday, August 25, 2014 10:59 AM Subject: Re: [Mingw-users] _wfopen in current MinGW [Please don't make this a private discussion.] > Date: Mon, 25 Aug 2014 07:54:59 -0700 > From: Roger Pepitone <rog...@ya...> > > > Error message: '_wfopen' was not declared in this scope > > You need to include <cstdio>. > > > I was including <cstdio> (and stdio.h, and cwchar, and wchar.h) Then please show a minimal complete source file that can be used to reproduce the problem. |