クラスがあるとしましょう:(別の質問ですみません)
class myClass
{
private:
int a;
public:
int GetA() { return a; }
};
GetA()
cppで通常定義されている可能性が高い場合は、int myClass::GetA() { return a; }
デバッグしてこの関数のアドレスを見つけることができますが、クラス内で定義されているため、そうすることができません。
実際の問題では、アドレスを知りたいのですGetDirection()
が、ご覧のとおり、アドレスがまったくないため、それを呼び出すポインターを検索してみましたが、アセンブリcall
命令はまったくありません
クラス外で定義されている場合は、次のようにします。
int callGetAFunction( DWORD* pointerToThatClass )
{
int retMe;
__asm
{
mov ecx, pointerToThatClass
mov eax, 0x00427110 //example address of myClass::GetA()
call eax
mov retMe, eax
}
return retMe;
}
今、私はそのクラスへのポインターを持っていますが、GetA()
メソッド内で定義されているため、メソッドのアドレスはありません。どうすればメソッドを呼び出すことができGetA()
ますか? (実際のポインターはdllで取得されます。そこから呼び出そうとしていますGetA()
)
int main()
{
void* pClass = FunctionThatReturnsAPointerToAMyClassObject();
}