// Преобразование символа в кодировке OEM в символ Windows. const WCHAR CConvOem::fromOemW(const CHAR chSrc) { if (m_blInvalidBuff) { SetLastError(ERROR_INVALID_ADDRESS); return WEOF; } OemToCharBuffW(&chSrc, m_szBuffW, 1); return *m_szBuffW; }
bool consoleToUtf8(const std::string& conStr, std::string& utf8str) { #if PLATFORM == PLATFORM_WINDOWS std::wstring wstr; wstr.resize(conStr.size()); OemToCharBuffW(&conStr[0], &wstr[0], conStr.size()); return WStrToUtf8(wstr, utf8str); #else // not implemented yet utf8str = conStr; return true; #endif }
void get_file_nameW(CHAR** command_line, WCHAR* filename, int max_filename) { CHAR filenameA[_MAX_PATH]; int len; get_file_nameA(command_line, filenameA, _MAX_PATH); len = strlen(filenameA); OemToCharBuffW(filenameA, filename, max_filename); filename[len] = _T('\0'); /* UNICODE_STRING UnicodeString; ANSI_STRING AnsiString; CHAR filenameA[_MAX_PATH]; get_file_nameA(command_line, filenameA, _MAX_PATH); //RtlInitAnsiString(&AnsiString, filenameA); UnicodeString.Buffer = filename; UnicodeString.MaximumLength = max_filename;//MAX_PATH; RtlAnsiStringToUnicodeString(&UnicodeString, &AnsiString, FALSE); */ }
/*********************************************************************** * OemToCharW (USER32.@) */ BOOL WINAPI OemToCharW( LPCSTR s, LPWSTR d ) { return OemToCharBuffW( s, d, strlen( s ) + 1 ); }