c++ - 将参数中的函数\类传递给静态库
问题描述
实际问题出现了,如何在函数的参数(在静态库中)中从主程序中获取一个类和另一个函数?
例如,这从主程序工作,我想将此函数转移到静态库:
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;
字符:
class CHAR: public CEntity, public CFSM, public CHorseRider
{
}
XXXX 在哪里 - 我需要LPCHAR
上课,怎么办?
YYYY-getGetPlayerID()
函数在哪里,怎么做呢?
还是它的工作方式有所不同?
解决方案
您的库中的签名与原始代码中的签名不同,但您似乎希望能够通过使用成员函数指针来调用成员函数。例子:
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