| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 395 人关注过本帖
标题:请教一个HWND强转成int的问题
只看楼主 加入收藏
a451410
Rank: 2
等 级:论坛游民
帖 子:99
专家分:98
注 册:2018-3-4
结帖率:84.38%
收藏
已结贴  问题点数:5 回复次数:5 
请教一个HWND强转成int的问题
是这样的,我定义了一个HWND类型的变量,如果我没记错它实际上应该是个无符号整型,unsigned int;
但是在强转成int是确报错了,不清楚是不是编译器的问题;
代码及错误简略如下:
HWND hand;
int a;
... ...
... ...
a = (int)hand;<-----这一句就报错了;error: cast from 'HWND' {aka 'HWND__*'} to 'int' loses precision [-fpermissive]
错误说是会损失精度,我寻思不会损失精度啊,即便会也能强转啊,顶多算个waring,也不会报错啊;
百思不得其解!至今仍未解决怎么办!
我用的是codeblock编译器;
搜索更多相关主题的帖子: 转成 int 编译器 HWND 报错 
2024-07-23 00:04
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:2 
试试用指针类型转换或用联合类型
2024-07-23 08:26
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:2 
HWND 是个指针类型,int未必能存得下。
按标准,指针要想转化成整型的话,应当用 uintptr_t 类型,它是一个能保证存得下地址的整型。
    HWND hwnd = nullptr;
    uintptr_t a = (uintptr_t)hwnd;


2024-07-23 08:33
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:242
专家分:1856
注 册:2023-6-29
收藏
得分:1 
回复 楼主 a451410
你不都说了是unsigned int吗, 和int当然不兼容了
2024-07-23 10:30
a451410
Rank: 2
等 级:论坛游民
帖 子:99
专家分:98
注 册:2018-3-4
收藏
得分:0 
我的解决办法是,定义了一个int指针,把hwnd强转成int指针,然后再强转成int。就不报错了
2024-07-23 21:26
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
以下是引用a451410在2024-7-23 21:26:39的发言:

我的解决办法是,定义了一个int指针,把hwnd强转成int指针,然后再强转成int。就不报错了
int 就存不下指针值,所以肯定还是错误的
2024-07-24 16:33
快速回复:请教一个HWND强转成int的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057694 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved