吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 963|回复: 10
收起左侧

[求助] 各位老师c语言中,返回的窗口句柄数值是啥类型?如何转化成字符串呢?

[复制链接]
jtwc 发表于 2022-3-10 18:28
本帖最后由 jtwc 于 2022-3-10 18:32 编辑

各位老师c语言中,返回的窗口句柄数值是啥类型?如何转化成字符串呢?谢谢了,源码如下:
#include <windows.h>
#include <iostream>


int main()
{
        HWND  hGameWnd = FindWindow(NULL, "窗口");
        if (hGameWnd == 0)
        {
                printf("找到该窗口.\n");
                getchar();
                return 0;
        }
        printf("%d\n", hGameWnd);

       //hGameWnd如何转化成字符串呢?

        getchar();
        return 0;
        
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

only998 发表于 2022-3-10 19:03
HWND  是一个指针,我想你说的转化成字符串没有啥意义,你指的转为字符是指获取窗口标题吧,用GetWindowText
该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控件,则拷贝控件的文本。
函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);
 楼主| jtwc 发表于 2022-3-10 19:09
only998 发表于 2022-3-10 19:03
HWND  是一个指针,我想你说的转化成字符串没有啥意义,你指的转为字符是指获取窗口标题吧,用GetWindowTex ...

老师,是把hGameWnd转化成字符串,不是窗口标题,谢谢了
only998 发表于 2022-3-10 19:21
jtwc 发表于 2022-3-10 19:09
老师,是把hGameWnd转化成字符串,不是窗口标题,谢谢了

那我不理解你的目的了,printf("%d"    本身就是格式化输出数值了。
 楼主| jtwc 发表于 2022-3-10 19:24
only998 发表于 2022-3-10 19:21
那我不理解你的目的了,printf("%d"    本身就是格式化输出数值了。

老师,把hGameWnd写入char a[50]={0};谢谢了
Eaglecad 发表于 2022-3-10 19:26
把%d换成%p就可以了,输出指针地址
z-one 发表于 2022-3-10 19:28
本帖最后由 z-one 于 2022-3-10 19:51 编辑

struct HWND__
{
int unused;

}
typedef struct HWND__ *HWND;
HWND就是HWND__这个结构体类型的指针
但是它指向的内存是PAGE_NOACCESS,不可被访问
[C] 纯文本查看 复制代码
        char buffer[11] = {0};
        _itoa_s((int)hGameWnd, buffer, 10,10);//第1个10指定缓冲区的字符个数。第2个10指定的是基数
        printf("%s\n", buffer);

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
jtwc + 1 + 1 我很赞同!

查看全部评分

 楼主| jtwc 发表于 2022-3-10 19:30
z-one 发表于 2022-3-10 19:28
窗口句柄就一表的索引,被声名为指针类型,当做整型就行了
[mw_shl_code=c,true]        char buffer[9] = {0};
...

谢谢老师
Panel 发表于 2022-3-10 21:16
可以使用itoa函数将句柄值转换为你需要存储的字符串数组就行了
michaelgao 发表于 2022-3-11 09:50
估计您的需求大概是:把调试过程中看到的窗口句柄(即指针地址)内存地址值,以字符串的形式打印出来。
#include <windows.h>
#include <iostream>
int main()
{
        HWND  hGameWnd = ::FindWindow(NULL, "Char Counter");
        if (hGameWnd == 0)
        {
                printf("找到该窗口.\n");
                getchar();
                return 0;
        }
        printf("%d\n", hGameWnd);

        //hGameWnd如何转化成字符串呢
        char buffer[8 + 1] = { 0 };
        _itoa_s((int)hGameWnd, buffer, 10, 16);
        printf("0x%08s\n", buffer);

        getchar();
        return 0;
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表