再次关于dll生成对话框有关问题
再次请教高手关于dll生成对话框问题!
上次提问后自己编了一调试程序老是出错,贴出来请高手给看看.上帖子见http://bbs.****.net/topics/390290502?page=1#post-392994504按照里面高手教授的方法,我生成规则共享MFC dll,导入对话框资源并生成另类CTest,成员函数int adddata(int a,int b);又生成一接口类CXX 用于接收外部数据和显示这个对话框。
#include "test.h"
class CTest;
class _declspec(dllexport) CXX
{
public:
void showmodal();
int ad(int a,int b);
CXX();
virtual ~CXX();
int ab;
private: CTest *m_pct;
};
//////////////////////////////////
CXX::CXX()
{ AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest *m_pct=new CTest();
}
CXX::~CXX()
{
delete m_pct;
}
int CXX::ad(int a, int b)
{
return (a+b);
}
void CXX::showmodal()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
//CTest *m_pct=new CTest();
m_pct->Create(IDD_DIALOG1);
m_pct->ShowWindow(SW_SHOW);
}
然后我新建一exe程序,对话框的
void CDllTest1exeDlg::OnOK()
{
// TODO: Add extra validation here
CXX ax;
x.showmodal();
// CDialog::OnOK();
}
然后就出错了,说我的程序出现问题,要不要联机解决问题或者调试、终止程序,。
我如果把 dll中的AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest *m_pct=new CTest();这句话放到void CXX::showmodal()也是错误。请高手指点下怎么弄
------解决方案--------------------
ID号冲突么?你查下dll中资源号,和主程序的资源号有没有冲突!
上次提问后自己编了一调试程序老是出错,贴出来请高手给看看.上帖子见http://bbs.****.net/topics/390290502?page=1#post-392994504按照里面高手教授的方法,我生成规则共享MFC dll,导入对话框资源并生成另类CTest,成员函数int adddata(int a,int b);又生成一接口类CXX 用于接收外部数据和显示这个对话框。
#include "test.h"
class CTest;
class _declspec(dllexport) CXX
{
public:
void showmodal();
int ad(int a,int b);
CXX();
virtual ~CXX();
int ab;
private: CTest *m_pct;
};
//////////////////////////////////
CXX::CXX()
{ AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest *m_pct=new CTest();
}
CXX::~CXX()
{
delete m_pct;
}
int CXX::ad(int a, int b)
{
return (a+b);
}
void CXX::showmodal()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
//CTest *m_pct=new CTest();
m_pct->Create(IDD_DIALOG1);
m_pct->ShowWindow(SW_SHOW);
}
然后我新建一exe程序,对话框的
void CDllTest1exeDlg::OnOK()
{
// TODO: Add extra validation here
CXX ax;
x.showmodal();
// CDialog::OnOK();
}
然后就出错了,说我的程序出现问题,要不要联机解决问题或者调试、终止程序,。
我如果把 dll中的AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTest *m_pct=new CTest();这句话放到void CXX::showmodal()也是错误。请高手指点下怎么弄
------解决方案--------------------
ID号冲突么?你查下dll中资源号,和主程序的资源号有没有冲突!