.ocx注册成功,但是创建失败

奥雷连诺 2011-11-03 05:11:10
在我的测试项目中创建成功,正常使用。
但是将.ocx的代码加入到另一个项目中后,创建就失败了,而且还引起在该项目其他DLL中调试的时候,断点非常慢,30秒走一次。

m_pNTGraph = new CNTGraph();
AfxOleInit();
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CoInitialize(NULL);
AfxEnableControlContainer();
if(!m_pNTGraph->Create(_T("STATIC"), _T(""), WS_CHILD | WS_VISIBLE, CRect(0, 0, 20, 20), this, 20000 + 2))
{
int error = GetLastError(); //错误码2,pNTGraph的句柄是空
}



这现象都是在一台电脑上的,不存在环境问题。本来可以正常使用,使用到另一个项目后,出现了上面的问题,然后网上找一了堆这些初始化函数,还是不能使用。
...全文
219 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
奥雷连诺 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fishion 的回复:]
还真没遇到过这样的问题,是不是你的Create多了一个_T("")参数了
[/Quote]
不是这个问题。。
fishion 2011-11-04
  • 打赏
  • 举报
回复
还真没遇到过这样的问题,是不是你的Create多了一个_T("")参数了
奥雷连诺 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fishion 的回复:]
或者就试下
CoInitialize(NULL);
m_pNTGraph = new CNTGraph();
if(!m_pNTGraph->Create(_T("STATIC"), _T(""), WS_CHILD | WS_VISIBLE, CRect(0, 0, 20, 20), this, 20000 + 2))
{
int error = GetLastError……
[/Quote]

你说的两个方法,我都试了,还是创建失败,句柄为空啊。请问大哥这种问题有没别的原因?
fishion 2011-11-04
  • 打赏
  • 举报
回复
或者就试下
CoInitialize(NULL);
m_pNTGraph = new CNTGraph();
if(!m_pNTGraph->Create(_T("STATIC"), _T(""), WS_CHILD | WS_VISIBLE, CRect(0, 0, 20, 20), this, 20000 + 2))
{
int error = GetLastError(); //错误码2,pNTGraph的句柄是空
}

fishion 2011-11-04
  • 打赏
  • 举报
回复
或者就试下
CoInitialize(NULL);
m_pNTGraph = new CNTGraph();
if(!m_pNTGraph->Create(_T("STATIC"), _T(""), WS_CHILD | WS_VISIBLE, CRect(0, 0, 20, 20), this, 20000 + 2))
{
int error = GetLastError(); //错误码2,pNTGraph的句柄是空
}

fishion 2011-11-04
  • 打赏
  • 举报
回复
CoInitialize(NULL)放在CXXApp::InitInstance()里就行了

把下面的全删掉
AfxOleInit();
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CoInitialize(NULL);
AfxEnableControlContainer();
W1nds 2011-11-03
  • 打赏
  • 举报
回复
-repick

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧