各位老师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;
}
HWND是一个指针,我想你说的转化成字符串没有啥意义,你指的转为字符是指获取窗口标题吧,用GetWindowText
该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控件,则拷贝控件的文本。
函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount); only998 发表于 2022-3-10 19:03
HWND是一个指针,我想你说的转化成字符串没有啥意义,你指的转为字符是指获取窗口标题吧,用GetWindowTex ...
老师,是把hGameWnd转化成字符串,不是窗口标题,谢谢了 jtwc 发表于 2022-3-10 19:09
老师,是把hGameWnd转化成字符串,不是窗口标题,谢谢了
那我不理解你的目的了,printf("%d" 本身就是格式化输出数值了。 only998 发表于 2022-3-10 19:21
那我不理解你的目的了,printf("%d" 本身就是格式化输出数值了。
老师,把hGameWnd写入char a={0};谢谢了 把%d换成%p就可以了,输出指针地址 本帖最后由 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); z-one 发表于 2022-3-10 19:28
窗口句柄就一表的索引,被声名为指针类型,当做整型就行了
char buffer = {0};
...
谢谢老师 可以使用itoa函数将句柄值转换为你需要存储的字符串数组就行了 估计您的需求大概是:把调试过程中看到的窗口句柄(即指针地址)内存地址值,以字符串的形式打印出来。
#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