jtwc 发表于 2022-3-10 18:28

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

本帖最后由 jtwc 于 2022-3-10 18:32 编辑

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


int main()
{
      HWNDhGameWnd = 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={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,不可被访问      char buffer = {0};
      _itoa_s((int)hGameWnd, buffer, 10,10);//第1个10指定缓冲区的字符个数。第2个10指定的是基数
      printf("%s\n", buffer);

jtwc 发表于 2022-3-10 19:30

z-one 发表于 2022-3-10 19:28
窗口句柄就一表的索引,被声名为指针类型,当做整型就行了
        char buffer = {0};
...

谢谢老师

Panel 发表于 2022-3-10 21:16

可以使用itoa函数将句柄值转换为你需要存储的字符串数组就行了

michaelgao 发表于 2022-3-11 09:50

估计您的需求大概是:把调试过程中看到的窗口句柄(即指针地址)内存地址值,以字符串的形式打印出来。
#include <windows.h>
#include <iostream>
int main()
{
        HWNDhGameWnd = ::FindWindow(NULL, "Char Counter");
        if (hGameWnd == 0)
        {
                printf("找到该窗口.\n");
                getchar();
                return 0;
        }
        printf("%d\n", hGameWnd);

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

        getchar();
        return 0;
}
页: [1] 2
查看完整版本: 各位老师c语言中,返回的窗口句柄数值是啥类型?如何转化成字符串呢?