分类 开发&技术 下的文章

使用 Cmd 命令 regsvr32 xxx.dll 注册 dll 时提示注册失败,进入 Win系统事件查看器 -> Windows日志 -> 应用程序显示如下:

“C:\dll\xxx.dll”的激活上下文生成失败。 找不到从属程序集 Microsoft.VC90.ATL,processorArchitecture="x86",publicKeyToken="xxxxxx",type="win32",version="9.0.21022.8"。 请使用 sxstrace.exe 进行详细诊断。

根据提示得知,是系统中缺少 Microsoft Visual C++ 2008 Redistributable Package (x86) 导致,下载安装后该报错解决,不过后续又提示

模块“Ecgana.dll”已加载,但对 DllRegisterServer 的调用失败,错误代码为 0x80070005。

该问题是由于操作权限不够导致,以管理员身份运行 Cmd 并执行注册命令,注册成功!

P.S. 此方法并不能解决所有 dll 注册失败问题,只是提供一个解决思路

一、使用的软件版本及需求说明

软件版本

  • Apache 2.4.39
  • PHP 5.6.9
  • MySQL 5.7
  • Oracle 11g
  • ThinkPHP 5.0

需求说明

当前项目中为PHP+MySQL结构,在后续的开发中需要加入对Oracle数据库的操作,所以需要项目可以同时连接操作MySQL和Oracle数据库,MySQL为原有默认操作,在需要操作Oracle库时临时切换数据库连接。

- 阅读剩余部分 -