【问题标题】:'DWORD CHackProcess::GetModuleNamePointer(LPSTR,DWORD)': cannot convert argument 1 from 'const char [11]' to 'LPSTR'“DWORD CHackProcess::GetModuleNamePointer(LPSTR,DWORD)”:无法将参数 1 从“const char [11]”转换为“LPSTR”
【发布时间】:2018-02-21 06:44:17
【问题描述】:

我在这个网站上搜索了一个答案,但最重要的答案对我不起作用,我一直收到这个错误。我最近(不确定我是否成功)将没有错误的项目从我的台式机导入到我的新笔记本电脑。每当我尝试运行时,我都会在多个文件中收到此错误,仅以一个为例:

错误 C2664:“DWORD CHackProcess::GetModuleNamePointer(LPSTR,DWORD)”:无法将参数 1 从“const char [11]”转换为“LPSTR”

这是在以下几行:

while (__dwordClient == 0x0) __dwordClient = GetModuleNamePointer("client.dll", __gameProcess.th32ProcessID);

while (__dwordEngine == 0x0) __dwordEngine = GetModuleNamePointer("engine.dll"6, __gameProcess.th32ProcessID);

while (__dwordVGui == 0x0) __dwordVGui = GetModuleNamePointer("vguimatsurface.dll", __gameProcess.th32ProcessID);

【问题讨论】:

标签: c++ visual-c++


【解决方案1】:

MSDNLPSTR 声明了以下定义:

typedef char* PSTR, *LPSTR;

这意味着它不是const 表达式。您传递的字符串是恒定的。

您只需传递一个非常量字符串作为第一个参数。

编辑:

可以翻译成这样:

char engineModuleName[] = "engine.dll";
GetModuleNamePointer(engineModuleName, __gameProcess.th32ProcessID);

【讨论】:

  • 另外,假设您从here 获得了该功能,我希望您不打算在网上作弊...
  • 不只是在线学习。当你说我必须传递一个非 const 表达式时,这是什么样的?
  • @Panda 但如果它实际上并没有以任何方式更改 char 数组,它仍然是一个奇怪的函数定义。
  • 到目前为止,这已经奏效,但我有更多的错误,基本上是一样的。如果我再次需要你,我会在你以前的帮助下尝试解决这些问题。谢谢你,你是一个救生员。
  • @Panda 你在使用不同的编译器吗?可能是编译器将其隐式转换为与我的答案相同的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 2017-11-10
  • 2010-11-24
相关资源
最近更新 更多