jtwc 发表于 2021-9-29 13:43

C++中用SendMessage(WM_GETTEXT)获得文本乱码如何解决?

各位老师,C++中用SendMessage(WM_GETTEXT)获得文本乱码如何解决?如图:

jtwc 发表于 2021-9-29 13:45

int main()
{
        HWND hGameWnd1 = (HWND)197346;//0x
        TCHAR szBuf;
        LONG lResult;

        lResult = SendMessage(hGameWnd1, WM_GETTEXT, sizeof(szBuf) / sizeof(szBuf), (LPARAM)szBuf);
        printf("Copied %d 内容: %s\n", lResult, szBuf);
       
        getchar();
        return 0;
}

苏紫方璇 发表于 2021-9-29 14:46

用memset给szBuf清零,或者用返回的lResult给字符串末尾补0。

jtwc 发表于 2021-9-29 14:49

苏紫方璇 发表于 2021-9-29 14:46
用memset给szBuf清零,或者用返回的lResult给字符串末尾补0。

老师,能详细讲一下具体操作吗?刚学,不太懂,谢谢你了

苏紫方璇 发表于 2021-9-29 14:54

jtwc 发表于 2021-9-29 14:49
老师,能详细讲一下具体操作吗?刚学,不太懂,谢谢你了

tchar那句下边加memset(szBuf,0,sizeof(szBuf))
或者在send下边加szBuf=0

jtwc 发表于 2021-9-29 14:56

苏紫方璇 发表于 2021-9-29 14:46
用memset给szBuf清零,或者用返回的lResult给字符串末尾补0。

memset(szBuf, 0, sizeof(szBuf));这样吗?

jtwc 发表于 2021-9-29 14:57

老师,显示不出来

jtwc 发表于 2021-9-29 15:06

老师,send下边加szBuf=0,显示

失去灯塔的孤帆 发表于 2021-9-29 15:11

烫烫烫是你的szBuf没有初始化。
你的lResult是0,没有返回的文本字符

jtwc 发表于 2021-9-29 15:17

失去灯塔的孤帆 发表于 2021-9-29 15:11
烫烫烫是你的szBuf没有初始化。
你的lResult是0,没有返回的文本字符

老师,原窗口是有文本字符的呀?用啥办法能读取呢?
页: [1] 2 3 4
查看完整版本: C++中用SendMessage(WM_GETTEXT)获得文本乱码如何解决?