注册ocx失败,提示说invalid access to memory location

windyloft 2008-11-13 10:01:33
注册ocx失败,提示说invalid access to memory location。
有知道怎么回事的吗?

这个OCX中没有调用其他DLL。
...全文
308 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2008-11-17
  • 打赏
  • 举报
回复
注册也可以DEBUG的

用 regsvr32 (在system32目录下)填入命令行,然后在 DllRegisterServer中打断点
windyloft 2008-11-13
  • 打赏
  • 举报
回复
我换了一台机器,也是不好使。
另外,我又试验了另外一个OCX,可以注册成功。
上网查了半天也没找到解决办法。
JJZHK 2008-11-13
  • 打赏
  • 举报
回复
访问了无效的内存地址?没遇到过。重启一下机器??
windyloft 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jameshooo 的回复:]
应该是使用了错误的内存分配方式,比如BSTR就必须使用SysAllocString而不能用new。注册过程也是可以断点跟踪的。
[/Quote]
注册过程怎么跟踪?
以下是注册的函数内容
STDAPI DllRegisterServer
(
void // (i)void
)
{

AFX_MANAGE_STATE(_afxModuleAddrThis);

if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
{
return ResultFromScode(SELFREG_E_TYPELIB);
}

if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
{
return ResultFromScode(SELFREG_E_CLASS);
}

return NOERROR;
}
jameshooo 2008-11-13
  • 打赏
  • 举报
回复
应该是使用了错误的内存分配方式,比如BSTR就必须使用SysAllocString而不能用new。注册过程也是可以断点跟踪的。

3,245

社区成员

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

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