首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CMySplitterWnd:createview出错,该怎么处理

2012-02-20 
CMySplitterWnd::createview出错m_wndSplitter.CreateStatic(this, 2,1)// The context information is p

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会报错,请大侠分享点经验啊。

[解决办法]

C/C++ code
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测下
[解决办法]
有点难度哦

热点排行