C++ 将参数中的函数\类传递到静态库

C++ 将参数中的函数\类传递到静态库,c++,g++,freebsd,C++,G++,Freebsd,实际的问题是,如何从主程序中获取函数参数中的类和函数(在静态库中) 例如,这在主程序中起作用,我想将此函数传输到静态库: void CHAR::Test(LPCHAR攻击者,DWORD时间) { DWORD id=attacker->GetPlayerID(); } LPCHAR-主程序中的一个类 这是来自静态库: void slibrary::Test(XXXX攻击者,字符常量*时间,YYYY) { DWORD id=攻击者->YYYY; } LPCHAR: typedef CHAR* L

实际的问题是,如何从主程序中获取函数参数中的类和函数(在静态库中)

例如,这在主程序中起作用,我想将此函数传输到静态库:

void CHAR::Test(LPCHAR攻击者,DWORD时间)
{
DWORD id=attacker->GetPlayerID();
}
LPCHAR-主程序中的一个类

这是来自静态库:

void slibrary::Test(XXXX攻击者,字符常量*时间,YYYY)
{
DWORD id=攻击者->YYYY;
}
LPCHAR:

typedef CHAR* LPCHAR;
字符:

XXXX在哪里?我需要获取
LPCHAR
类,如何操作

YYYY-get
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);
}

我不太熟悉静态libs的编写,但是你能不能把
测试
函数作为一个模板?在问题中添加
CHAR
LPCHAR
的定义。LPCHAR-自定义类你在哪个操作系统上运行它?FreeBSD 9.2发行版
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