15,471
社区成员
发帖
与我相关
我的任务
分享
//.h导出
// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 TLVISIONMODULE_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// TLVISIONMODULE_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef TLVISIONMODULE_EXPORTS
#define TLVISIONMODULE_API __declspec(dllexport)
#else
#define TLVISIONMODULE_API __declspec(dllimport)
#endif
// 此类是从 tlVisionModule.dll 导出的
class TLVISIONMODULE_API CtlVisionModule {
public:
CtlVisionModule(void);
// TODO: 在此添加您的方法。
bool CreateView(CWnd *view);
};
//.cpp
//方式一 Create处崩溃
bool CtlVisionModule ::CreateView(CWnd *view)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
m_pDlgMain = new CDlgMain;
m_pDlgMain->Create(IDD_DIALOG_MAIN, view);//崩~~
m_pDlgMain->ShowWindow(SW_SHOW);
return true;
}
//方式二 运行正常,dll中界面是弹出式,不是我想要的
bool CtlVisionModule ::CreateView(CWnd *view)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
m_pDlgMain = new CDlgMain;
m_pDlgMain->Create(IDD_DIALOG_MAIN, NULL);//
m_pDlgMain->ShowWindow(SW_SHOW);
return true;
}
//.h定义
CWnd m_pwnd;//这个不能定义到CreateView函数中,函数结束会崩
//.cpp代码修改如下
bool CCamController::CreateView(HWND hwnd)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
m_pDlgMain = new CDlgMain;
m_pwnd.Attach(hwnd);
m_pDlgMain->Create(IDD_DIALOG_MAIN, &m_pwnd);
m_pDlgMain->ShowWindow(SW_SHOW);
return true;
}