将参数中的函数\类传递给静态库

Pass functionclass in parameter to static library

本文关键字:静态 函数 参数      更新时间:2023-10-16

实际的问题出现了,如何在函数的参数中(在静态库中(从主程序中获取一个类和另一个函数?

例如,这可以从主程序工作,我想将这个函数转移到静态库:

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 - 在哪里获得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