Class CTestFrmA : public CDialog
{
Public:
int (*TestABC)(CString strData);
...
...
}Class CTestFrmB : public CDialog
{
Public:
int TestBCD(CString strData);
...
...
}错误的地方是:
m_FrmTestA.TestABC = TestBCD; error C2440: '=' : cannot convert from 'int (__thiscall CTestDlg::*)(class CString)' to 'int (__cdecl *)(class CString)'我在一个Dialog(CTestFrmB)的初始化函数中创建了另一个窗体(CTestFrmA),并想设置另一个窗体(m_FrmTestA)里面的一个回调函数.
{
Public:
int (*TestABC)(CString strData);
...
...
}Class CTestFrmB : public CDialog
{
Public:
int TestBCD(CString strData);
...
...
}错误的地方是:
m_FrmTestA.TestABC = TestBCD; error C2440: '=' : cannot convert from 'int (__thiscall CTestDlg::*)(class CString)' to 'int (__cdecl *)(class CString)'我在一个Dialog(CTestFrmB)的初始化函数中创建了另一个窗体(CTestFrmA),并想设置另一个窗体(m_FrmTestA)里面的一个回调函数.
{
Public:
int TestBCD(CString strData);
...
...
}
该类中的TestBCD是CTestFrmB的成员函数,签名和int (*TestABC)(CString strData);显然不一样
int CTestFrmB::TestBCD( CTestFrmB *this, CString strData ); __thiscall
int (*TestABC)(CString strData); __cdecl call
谢谢,您的解释,您告诉我了原因,但是这个问题解决方法是什么呢?
我怎么才能用"回调函数".怎样才能让TestA去使用TestB的函数.