64位系统下调用getprocessmemoryinfo,为何获取到的内存值为空

godgogogo 2013-05-29 07:29:23
如题,32位没有问题,转成64位工程该函数失效。
...全文
406 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
godgogogo 2013-06-05
  • 打赏
  • 举报
回复
引用 6 楼 hdt 的回复:
没有64位环境,你试一下 Getlasterror() 看看有无错误码,然后根据vs 提供的错误查找程序,看看错误是多少?
错误是(122)-传递到系统调用的数据区太小。 传的大小就是sizeof(PROCESS_MEMORY_COUNTERS)啊。
godgogogo 2013-06-05
  • 打赏
  • 举报
回复
引用 7 楼 godgogogo 的回复:
[quote=引用 6 楼 hdt 的回复:] 没有64位环境,你试一下 Getlasterror() 看看有无错误码,然后根据vs 提供的错误查找程序,看看错误是多少?
错误是(122)-传递到系统调用的数据区太小。 传的大小就是sizeof(PROCESS_MEMORY_COUNTERS)啊。[/quote] 把这个大小扩大两倍,函数执行倒是成功了,就是长度和结构对不上,不知道结果是否正确。我再和任务管理器对照下,多谢。
真相重于对错 2013-05-31
  • 打赏
  • 举报
回复
没有64位环境,你试一下 Getlasterror() 看看有无错误码,然后根据vs 提供的错误查找程序,看看错误是多少?
nihao38 2013-05-30
  • 打赏
  • 举报
回复
关注,期待答案
u010898315 2013-05-30
  • 打赏
  • 举报
回复
第一帖 c++好难哦
godgogogo 2013-05-30
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/0ae93397-5b55-442a-ac3a-9fed2b1f0d01
多谢,我也尝试过这种方法。 只是我的32位工程是VC6.0的,转到64位下用的vs2012。 但自动转换时默认库连的都还是VC的库,如果单独这一个psapi.lib库连64位的库,编译过不了。
godgogogo 2013-05-30
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/0ae93397-5b55-442a-ac3a-9fed2b1f0d01
多谢,我也尝试过这种方法。
threenewbee 2013-05-29
  • 打赏
  • 举报
回复
http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/0ae93397-5b55-442a-ac3a-9fed2b1f0d01

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧