окно — проблема c ++ с параметром LPCSTR gdi функции TextOut ()

Я пытаюсь использовать функцию TextOut для рисования слов в моем окне, и следующий метод отлично работает для меня:

HDC hdc = GetDC(windowHandle);
TextOut(hdc, 10, 10, TEXT("Hello World"), 16);
ReleaseDC(windowHandle, hdc);

И это выводит: Hello World

Все хорошо, пока, когда я делаю следующий метод:

HDC hdc = GetDC(windowHandle);
string myString = "Hello World";
TextOut(hdc, 10, 10, myString.c_str(), 16);
ReleaseDC(windowHandle, hdc);

программа выводит: Hello World # $% ^&

и # $% ^& часть на самом деле другие квадратные символы, которые я не уверен, как писать на клавиатуре. Я понимаю, что четвертый параметр функции TextOut имеет тип LPCSTR, и использование функции .c_str () после того, как моя строка должна правильно выводить переменную LPCSTR, и так происходит с момента запуска программы, однако почему я получаю # $% ^& включены в конце Hello World и как я могу решить эту проблему? Мне нужно использовать второй метод, а не первый, потому что моя программа будет генерировать строки, которые затем я хотел бы вывести в свое окно.

0

Решение

Согласно документации TextOut (http://msdn.microsoft.com/en-us/library/windows/desktop/dd145133%28v=vs.85%29.aspx) параметр fith отражает длину строки. Ты говоришь 16 здесь, однако, только 11.

1

Другие решения


По вопросам рекламы [email protected]