Мне необходимо создать вкладку в головной программе импортируя из dll ID диалога и объект класса
Вот импорт:
Код: Выделить всё
extern "C" __declspec(dllimport) UINT __stdcall GetMyParentID();
extern "C" __declspec(dllimport) CDialog* __stdcall GetMyParentObject(); // ???????
CDLLTestDlg::CDLLTestDlg(CWnd* pParent )
: CDialog(CDLLTestDlg::IDD, pParent)
{
m_page3 = GetMyParentObject(); // CDialog* m_page3;
}
BOOL CDLLTestDlg::OnInitDialog()
{
...
item.mask = TCIF_PARAM;
item.lParam = (LPARAM)m_page3;
m_TabControl.SetItem(2, &item);
VERIFY(m_page3->Create(GetMyParentID(), &m_TabControl));
m_page3->SetWindowPos(NULL, 10, 30, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
m_page3->ShowWindow(SW_HIDE);
}
а GetMyParentID() должен возвращать ID
Вот что я пишу в dll
Код: Выделить всё
extern "C" __declspec(dllexport) CDialog* CALLBACK GetMyParentObject() // ?????
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CPage3* page = new CPage3; // ????????
return page; // ????????
}
extern "C" __declspec(dllexport) UINT CALLBACK GetMyParentID()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
return CPage3::IDD;
}
Я пытаюсь вернуть указатель на CPage3 через CDilog это наверное неверно также как и с передачей ID
Подскажите...