#include "stdafx.h" //--------------------------------------------------------------------------- #pragma hdrstop #include <tchar.h> #pragma argsused //--------------------------------------------------------------------------- #include <conio.h> #include <stdio.h> #include <windows.h> //--------------------------------------------------------------------------- void OEMTextOut(char *Buffer, int TextAttribute = 10) { // Вывод цветного кириллического текста char outBuffer[256]; HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(console, TextAttribute); CharToOemA(Buffer, outBuffer); // кириллизация текста printf_s("%s\n", outBuffer); // вывод текста } //--------------------------------------------------------------------------- int main() { OEMTextOut("=== SimpleHandler ===", 11); OEMTextOut("Начало", 12); try { OEMTextOut(" ...в блоке try"); OEMTextOut(" Генерация текстового исключения 'Это тест!'", 14); throw " Это тест!"; // генерация исключения, заданного постоянной строкового типа OEMTextOut("Эта строка не отобразится, т.к. управление передано блоку catch"); } catch (const char* p) { // перехват исключения, заданного постоянной строкового типа OEMTextOut(" ...в блоке catch"); // преобразование постоянного указателя на строку в переменный OEMTextOut(const_cast <char *> (p), 14); } OEMTextOut("Конец", 12); system("pause"); } 

I get the following error:

Error C2664 "BOOL CharToOemW (LPCWSTR, LPSTR)": Cannot convert argument 1 from "char *" to "LPCWSTR"

    1 answer 1

    The first argument to CharToOemW must be a unicode string.

    • Argumenet what? - Cerbo
    • @Cerbo, CharToOemW . - Qwertiy
    • Just in case, I didn’t mean anything bad with my commentary :))) - Cerbo
    • So what should I do? I just can not understand. - JZ_52
    • one
      @ JZ_52, use CharToOemA ? - Qwertiy