我不能使用 DrawText()

I can't use DrawText()

本文关键字:DrawText 不能      更新时间:2023-10-16

我正在尝试用GDI在c++上绘制一些文本

碰巧我有一个类它有一个返回状态的方法我想绘制它

状态是一个std::字符串!

这是目前为止的内容:

        RECT status = RECT();
        status.left = rcClient.right-200;
        status.left = rcClient.left;
        status.top = rcClient.top;
        status.bottom = rcClient.bottom;
        DrawTextW(hdc, game->GetStatus().c_str(), 1, status, 0);

我有以下错误:

<>之前"FormatMessageW":无法将参数5从"LPWSTR"转换为"char *"687 damas"FormatMessageW":无法将参数5从"wchar_t *"转换为"char *"DrawTextW:无法将参数2从"const char *"转换为"LPCWSTR"之前我找不到解决这个问题的方法。有人能帮我一下吗?

A std::string使用字符,但DrawTextW期望宽字符(WCHAR s,与wchar_t s相同)。

可以用字符串显式地调用DrawTextA。它将使用宽字符复制字符串并将其传递给DrawTextW

DrawTextA(hdc, game->GetStatus().c_str(), 1, &status, 0);

(还要注意,它接受一个指向RECT的指针,因此您也需要&)