VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 97|回复: 1

[已解决]GetFileSize中高端大小和低端大小合并

[复制链接]
24_avatar_middle
最佳答案
0 
在线会员 发表于 2020-3-22 08:03:18 | 显示全部楼层 |阅读模式
在《C/C++ Windows 程序设计》第八课获取文件大小中有这么一段操作
把高端大小(dwFileSizeHigh)和低端大小(dwFileSize)合并到一起

DWORD dwFileSizeHigh = 0;

DWORD dwFileSize = GetFileSize(hFile, &dwFileSizeHigh);

LONGLONG LFileSize = (((LONGLONG) dwFileSizeHigh) << 32) | dwFileSize;

这当中,我没明白 (((LONGLONG) dwFileSizeHigh) << 32) | dwFileSize; 是怎么操作的

最佳答案
51_avatar_small
2020-3-22 13:07:48
dwFileSizeHigh 是新64位数的高32位,所以,要先把他转成64位数,并且左移32位,这样他才能在新生成的64位数的高32位上。之后再按位或 dwFileSize,也就是把低32位的值也给赋上了,所以就转换完成了




上一篇:为什么要用 FindWindowExA 才获取到 正确的窗口句柄?原理是什么?
下一篇:全局HOOK msgbox函数的疑问
51_avatar_middle
最佳答案
79 
online_admins 发表于 2020-3-22 13:07:48 | 显示全部楼层    本楼为最佳答案   
bestAnswer
dwFileSizeHigh 是新64位数的高32位,所以,要先把他转成64位数,并且左移32位,这样他才能在新生成的64位数的高32位上。之后再按位或 dwFileSize,也就是把低32位的值也给赋上了,所以就转换完成了
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-7-12 00:58

Powered by CcTry.CoM

© 2009-2020 cctry.com

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