我在工作时必须为新模块创建一个回调接口,所以我在类中创建了一个静态方法。
我仍然不明白的一件事是为什么我不能在像这样的静态成员中调用非静态成员方法:
class CAdapterUser
{
public:
CAdapterUser() {}
virtual ~CAdapterUser() {}
void Test();
void Test2();
protected:
CAdapter m_Adapter;
unsigned char buffer[16];
static void TestFunc(void* apContext);
};
void
CAdapterUser::TestFunc( void* apContext )
{
// CAdapterUser* pUser = (CAdapterUser*)apContext;
CAdapterUser* pUser = reinterpret_cast<CAdapterUser*>(apContext);
pUser->Test2(); // Compile error : LNK2019
pUser->buffer[0] = 1; // Even though I can access protected member variable?
}
有人可以回答我的问题吗?
答案 0 :(得分:1)
LNK2019是无法解析的符号,可能您只是忘记了实现Test2()
。