出现了实际问题,如何从主程序中通过一个函数的参数(在静态库中)获得一个类和另一个函数?
例如,这在主程序中有效,我想将此函数传输到静态库:
void CHAR :: Test (LPCHAR attacker, DWORD time)
{
DWORD id = attacker-> GetPlayerID ();
}
LPCHAR-主程序中的类
这是来自静态库:
void slibrary :: Test (XXXX attacker, char const * time, YYYY)
{
DWORD id = attacker-> YYYY;
}
LPCHAR:
typedef CHAR* LPCHAR;
CHAR:
class CHAR: public CEntity, public CFSM, public CHorseRider
{
}
XXXX在哪里-我需要获得LPCHAR
类,该怎么做?
在哪里YYYY-获得GetPlayerID()
功能,该怎么做?
或者它以某种方式有所不同?
您的库中的签名与原始代码中的签名不同,但是似乎您希望能够通过使用成员函数指针来调用成员函数。示例:
class CHAR {
public:
DWORD GetPlayerID() { return 1; }
};
class slibrary {
public:
// YYYY is here a member function pointer
void Test(CHAR* attacker, DWORD time, DWORD (CHAR::*YYYY)()) {
DWORD id = (attacker->*YYYY)();
std::cout << id << '\n';
}
};
int main() {
CHAR a;
slibrary sl;
sl.Test(&a, 0, &CHAR::GetPlayerID);
}
输出:
1