ActiveX插件注册提示AfxOleRegisterTypeLib错误问题

xiaohuh421 2019-01-11 06:23:39
使用命令行注册插件的时候, 提示错误.
已经使用depends看过, 不差依赖库, 都是一样的win7系统.
但在某些电脑上就会报这个错.


急求指导
...全文
984 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2019-01-26
  • 打赏
  • 举报
回复
那就试着添加信任/白名单之类的吧

xiaohuh421 2019-01-25
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
远程调试条件不具备, 网络不互通. 后面发现关闭360相关软件, 就正常了. 不知道是不是360拦截了相关的API导致的.
zgl7903 2019-01-12
  • 打赏
  • 举报
回复
是否以管理员权限?
AfxOleRegisterTypeLib 有源码的, 远程调试下 或者修改下,列出每一步的错误信息

//CTLREG.cpp
BOOL AFXAPI AfxOleRegisterTypeLib(HINSTANCE hInstance, REFGUID tlid,
LPCTSTR pszFileName, LPCTSTR pszHelpDir)
{
USES_CONVERSION;

BOOL bSuccess = FALSE;
CString strPathName;
TCHAR *szPathName = strPathName.GetBuffer(_MAX_PATH);
::GetModuleFileName(hInstance, szPathName, _MAX_PATH);
strPathName.ReleaseBuffer();
LPTYPELIB ptlib = NULL;

// If a filename was specified, replace final component of path with it.
if (pszFileName != NULL)
{
int iBackslash = strPathName.ReverseFind('\\');
if (iBackslash != -1)
strPathName = strPathName.Left(iBackslash+1);
strPathName += pszFileName;
}

if (SUCCEEDED(LoadTypeLib(T2COLE(strPathName), &ptlib)))
{
ASSERT_POINTER(ptlib, ITypeLib);

LPTLIBATTR pAttr;
GUID tlidActual = GUID_NULL;

if (SUCCEEDED(ptlib->GetLibAttr(&pAttr)))
{
ASSERT_POINTER(pAttr, TLIBATTR);
tlidActual = pAttr->guid;
ptlib->ReleaseTLibAttr(pAttr);
}

// Check that the guid of the loaded type library matches
// the tlid parameter.
ASSERT(IsEqualGUID(tlid, tlidActual));

if (IsEqualGUID(tlid, tlidActual))
{
// Register the type library.
if (SUCCEEDED(RegisterTypeLib(ptlib,
T2OLE((LPTSTR)(LPCTSTR)strPathName), T2OLE((LPTSTR)pszHelpDir))))
bSuccess = TRUE;
}

RELEASE(ptlib);
}
else
{
TRACE1("Warning: Could not load type library from %s\n", (LPCTSTR)strPathName);
}

return bSuccess;
}

3,245

社区成员

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

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