【问题标题】:Win API VirtualQueryEx Function,ERROR_BAD_LENGTHWin API VirtualQueryEx 函数,ERROR_BAD_LENGTH
【发布时间】:2009-12-28 23:26:55
【问题描述】:

您好,我尝试调用 VirtualQueryEx 函数来获取有关内存保护的一些信息,但是我的代码给了我错误 0x18 (ERROR_BAD_LENGTH),我不知道我的代码有什么问题;

代码sn-p:

PMEMORY_BASIC_INFORMATION 替代;

VirtualQueryEx(processhandle,(LPVOID) (地址),alte,sizeof(PMEMORY_BASIC_INFORMATION));

感谢您的帮助

【问题讨论】:

  • 您不应该将address 转换为LPCVOID 吗?

标签: c++ winapi virtualquery


【解决方案1】:

alte 需要声明为 MEMORY_BASIC_INFORMATION 而不是指向一个的指针。

MEMORY_BASIC_INFORMATION alte;

VirtualQueryEx(processhandle,(LPVOID) (address),&alte,sizeof(MEMORY_BASIC_INFORMATION));

编辑:注意它的 sizeof(MEMORY_BASIC_INFORMATION) 而不是 sizeof(PMEMORY_BASIC_INFORMATION)。

其实还是这样写比较好

VirtualQueryEx(processhandle,(LPVOID) (address),&alte,sizeof(alte));

【讨论】:

  • error C2664: 'VirtualQueryEx': Konvertierung des Parameters 3 von 'PMEMORY_BASIC_INFORMATION *__w64' in 'PMEMORY_BASIC_INFORMATION' nicht möglich
  • 那是一个错字。对不起。现在已经修好了。
  • 我无法阅读该语言的错误消息。德语?发布您当前的代码并使用 4 个空格缩进,使其看起来像代码
  • 是的,它是德语,它说它不能将第三个参数从“PMEMORY_BASIC_INFORMATION *__w64”转换为“PMEMORY_BASIC_INFORMATION”
  • 哦。您没有更改 alte 的声明。再看看
猜你喜欢
  • 2022-10-15
  • 1970-01-01
  • 2013-05-20
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 1970-01-01
相关资源
最近更新 更多