Я кодирую приложение и хочу напечатать подчеркнутый текст. Что я делаю не так?
Я использую «переведенный» код из C #, обычно он отлично работает в C #, но не в C ++. После того, как я исправил ошибки, код просто не работает. Это показывает некоторые символы, которые обычно не будут. Это то, что он печатает вместо (https://i.imgur.com/V1X2uWk.png)
Вот код, который я использовал
auto DllHandler = GetStdHandle(-11);
unsigned int Mode;
GetConsoleMode(DllHandler,PDWORD(Mode));
Mode |= 4;
SetConsoleMode(DllHandler,DWORD(Mode));
cout << "\x1b[5mUnderlined \x1b[0mtext" << endl;
А вот и оригинальный (C #) код:
[DllImport("kernel32.dll", SetLastError = true)]
public static extern IntPtr GetStdHandle(int nStdHandle);
[DllImport("kernel32.dll")]
public static extern IntPtr GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);
[DllImport("kernel32.dll")]
public static extern IntPtr SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);
var DllHandler = Kernel32.GetStdHandle(-11);
uint Mode;
GetConsoleMode(DllHandler,out Mode);
Mode |= 4;
SetConsoleMode(DllHandler, Mode);
Console.Write("\x1b[5mUnderlined \x1b[0mText");
Заранее спасибо.