我正在尝试创建一个(32 位)DLL 以注入到目标进程中。
我的 DLL 应该在原始进程中调用一个函数。到目前为止没有什么特别的,但是目标函数使用 thiscall 调用约定。
我正在尝试使用我自己的假类对象。该方法仅在此类对象中设置一些变量。
我的尝试:
class HashClass
{
public:
byte data[1024];
LPVOID HashFunc(float, char, char);
};
typedef LPVOID (HashClass::*HASHFUNC)(float, char, char);
HASHFUNC *HashFunc = (HASHFUNC *) 0xD34DB33F;
void CallHashFunction()
{
HashClass *hashClass = new HashClass();
(hashClass->*HashFunc)(1.0f, 'a', 'b'); // Getting an error here
}
最好和最简单的方法是什么?
我得到的错误:
Error 1 error C2297: '.*' : illegal, right operand has type 'HASHFUNC *'
2 IntelliSense: expression must have pointer-to-member type