gpt4 book ai didi

c++ - 我不能使用 DrawText()

转载 作者:太空狗 更新时间:2023-10-29 21:24:26 25 4
gpt4 key购买 nike

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

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

状态是一个 std::string!

到目前为止,这是我所拥有的:

        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);

我的错误是:

error C2664: 'FormatMessageW' : cannot convert parameter 5 from 'LPWSTR' to 'char *'687 damaserror C2664: 'FormatMessageW' : cannot convert parameter 5 from 'wchar_t *' to 'char *'damaserror C2664: 'DrawTextW' : cannot convert parameter 2 from 'const char *' to 'LPCWSTR'  

我找不到解决这个问题的方法...有人可以帮我吗?

最佳答案

std::string 使用字符,但 DrawTextW 需要宽字符(WCHAR,与 wchar_t 相同s).

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

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

(另请注意,它需要一个指向 RECT 的指针,因此您还需要 &。)

关于c++ - 我不能使用 DrawText(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16085675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com