C++ ';LPVOID';:非法使用此类型作为表达式

C++ ';LPVOID';:非法使用此类型作为表达式,c++,dll,C++,Dll,如果我问了一个坏问题,我不知道动态链接库的级别对不起,伙计们 我使用->'LPVOID':非法使用此类型作为表达式 #包括“pch.h” #包括 #包括 图书馆 手柄; HWND-HWND; 德沃德pID; 一些要求给游戏把柄 模板 T读(DWORD地址) { T值; ReadProcessMemory(handle,(LPVOID),&VALUE,sizeof(T),0); 返回值; } RPM模板 void readingvariables() { //00DB0000-sauerbr

如果我问了一个坏问题,我不知道动态链接库的级别对不起,伙计们

我使用->'LPVOID':非法使用此类型作为表达式

#包括“pch.h”
#包括
#包括
图书馆

手柄;
HWND-HWND;
德沃德pID;
一些要求给游戏把柄

模板
T读(DWORD地址)
{
T值;
ReadProcessMemory(handle,(LPVOID),&VALUE,sizeof(T),0);
返回值;
}
RPM模板

void readingvariables()
{
//00DB0000-sauerbraten.exe
DWORD localplayer=Read(0x00DB0000+0x213EA8);
int health=Read(localplayer+0x15C);
printf(“健康:”,健康);
}
在这里读取变量

BOOL-apient-DllMain(HMODULE-HMODULE,
德沃德·乌尔打电话的理由,
LPVOID lpReserved
)
{
开关(ul\u呼叫原因\u)
{
案例DLL\u进程\u附加:
读取变量();
案例DLL\u线程\u连接:
案例DLL\u线程\u分离:
案例DLL\u进程\u分离:
打破
}
返回TRUE;
}
最后在这里附加dll

好的,伙计们,我在等答案祝你们好运:)

你们的问题在这里:

ReadProcessMemory(句柄,(LPVOID),&VALUE,sizeof(T),0)

第二个参数只是
(LPVOID)
,它只是一个类型,但需要是一个表达式。您是否正在尝试将某些内容强制转换到LPVOID

也许你的意思是
(LPVOID)&VALUE
或者
(LPVOID)0


编译器向您发出的错误消息应已给出此行号。

您没有正确调用
ReadProcessMemory()
。您正在传递一个需要内存地址的类型。您正在忽略传递到
Read()
address
参数,这是您应该输入到
LPVOID
的类型转换,例如:

模板
T读(DWORD地址)
{
T值;
if(!ReadProcessMemory(句柄,(LPVOID)地址和值,sizeof(T),NULL))
{
//错误处理。。。
}
返回值;
}

您可能希望使用nullptr或NULL(或类似于
(LPVOID)0
)的内容,
(LPVOID),&VALUE
是什么意思?你的意思是写
(LPVOID)&VALUE
?我这样做只是为了读取值,我没有使用RPM函数中使用的东西,比如WPM,我从来没有真正打印过值,谢谢KIIV你解决了我的问题谢谢你的帮助我理解了更多的逻辑我不太懂英语有时我可以用一些错误来解释逻辑和回答问题