【发布时间】:2014-09-14 09:46:33
【问题描述】:
在 TextOut 行的这段代码中有一些问题:
error: cannot convert 'std::string* {aka std::basic_string<char>*}' to
'LPCSTR {aka const char*}' for argument 4 to
'BOOL TextOutA(HDC, int, int, LPCSTR, int)'
我已经搜索了一段时间,但找不到任何不会让我永远困惑或不会完成我想做的事情的东西,那就是画一个字符串。
case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT ps;
string text = "Something";
RECT rect;
GetClientRect( hwnd, &rect );
hdc = BeginPaint( hwnd, &ps );
TextOut( hdc, rect.right/2, rect.bottom/2, &text, 1 );
EndPaint( hwnd, &ps );
}
return 0;
break;
【问题讨论】:
-
LPCSTR被定义为typedef const char* LPCSTR;string* = char*如何成立? -
如果您使用的是 Windows API,则应定义
UNICODE。 -
@chris:那只会让事情变得更糟。
-
@BenVoigt,它会专门在这里。总体而言,支持某个特定代码页之外的字符的应用程序很不错。
-
@chris:UTF-8 代码页出奇地多才多艺,很少有人需要其他东西。