CMySplitterWnd::createview出错
m_wndSplitter.CreateStatic(this, 2,1);
// The context information is passed on from the framework
CCreateContext *pContext = (CCreateContext*)lpCreateStruct->lpCreateParams;
// Create two views
CRuntimeClass* prt2=RUNTIME_CLASS(CLogView);
if (!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLogView),
CSize(0,250), pContext))
{
TRACE0("Failed to create CMapView\n");
return -1;
}
CRuntimeClass* prt=RUNTIME_CLASS(CVideoView);
if (!m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CVideoView),
CSize(0,550), pContext))
{
TRACE0("Failed\n");
return -1;
}
SDI框架,clogview在主程序内,cvideoview封装成dll(MFC扩展,导出整类的),两个view都是从CFormView派生。
上面代码在create logview时正常,但在create CVideoView时出错。
1、调试跟踪prt2和prt的基类指针不相同,都是从CFormView派生的话,是不是基类指针应该相同?
2、想不通为何动态创建从动态库的view会报错,请大侠分享点经验啊。
[解决办法]
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLogView), CSize(0,0), pContext); m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CVideoView), CSize(0,0), pContext);
[解决办法]
你的CVideoView的问题 , cvideoview封装成dll了
不信你可以重新建一个FormView给它一个类名,它正常显示。
你把它封装成dll干什么.至于封装好的dll,能不能CreateView,我不确定。
如果这个CVideoView不完成什么很特殊的功能,就没有必要封装成dll了
[解决办法]
IMPLEMENT_DYNAMIC(CVideoView,CFormView)
这句话有没错写
[解决办法]
可能是DLL的问题,直接用VideoView.h,VideoView.cpp测下
[解决办法]
有点难度哦