描述:
我建了个MFC DLL工程,然后用建立类向导->Add Class->From a type library,选中这个控件的OCX文件,从中选用到的类,然后加入代码、编译、执行,中间没任何问题,但是得到的结果就是不对,我试了一下,EXE中这么使用也不行,此路不通。
换个方法,建MFC DLL工程之后,加入1个对话框,在里面加入该ActiveX控件,再用建立类向导,然后加入代码、编译、执行,中间没任何问题,如果是EXE就正确,如果是DLL,其他程序调用该DLL,执行到该ActiveX控件就出错:
Debug Assertion Failed!
Program: ...........
File: winocc.cpp
Line: 345
看了一下winocc.cpp, 里面345行是 :
ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)
我在大富翁论坛也提了同样的问题,还没解决:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3036365
大富翁中我另外一个帖子,是为了同一件事,但解决方法不同,如果那个帖子有办法就更好了:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3038998
解决方案1:
AfxEnableControlContainer
Call this function in your application object's InitInstance function to enable support for containment of OLE controls.
void AfxEnableControlContainer( );
AfxEnableControlContainer();
你在初始化的地方调用这个就可以了。