我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么解决php com组件报错问题

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么解决php com组件报错问题

小编给大家分享一下怎么解决php com组件报错问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

php com组件报错的解决办法:1、在php.ini中修改配置“com.allow_dcom”和“php_com_dotnet.dll”;2、使用vs2013编写COM组件。

php加载COM组件失败原因及其解决方法

在php中调用其它编程语言的接口,个人感觉最方便的就是使用COM组件了。最近小弟刚开始接触php,在研究调用c++编写的COM组件的时候遇到了“'Failed to create COM object”这个错误,费了不少功夫终于解决。

高版本的php需要手动开启支持COM,基本就是在php.ini中修改配置为com.allow_dcom = true和extension=php_com_dotnet.dll。如果是这种错误很好解决。其实这种配置错误我觉得一般很少有人会犯,还有不少人说可以通过加载测试wps或者word组件的方式来测试COM组件支持是否正常,但是由于权限的问题,这种测试方式不太好用。后来我在http://php.net/manual/zh/class.com.php文档说明中找到$db = new COM("ADODB.Connection",NULL, 65001 );经测试加载正常,说明一定是我写的COM组件有问题,结果确实如此。

之前网上有不少php加载c++编写的COM组件的例子,可能是php版本太低的原因,那种创建组件的方式已经不合适了,如果使用的是php5.2之前的版本可能无误。我使用的是php5.5,被误导了。

我的php版本是5.5.12,使用vs2013编写COM组件,下面是过程:

1,启动栏找到vs2013,右键管理员权限打开,只所以用管理员身份打开是因为待会注册COM组件的时候方便。在c++中新建ATL项目,

怎么解决php com组件报错问题

2,点击完成,在工程上右键添加类,选择ATL COM+10。

怎么解决php com组件报错问题

3,工程右键点击添加类。下面是最关键的地方,右下角的ProgID一定要手动添加,格式为"项目名称.简称",项目名称就是生成dll的名字,待会再php里面加载的时候也要这么写,第二项是简称,不是类名。如果这个地方写错,虽然组件能够注册成功,但是在php中是不识别的。

怎么解决php com组件报错问题

4,在Itest上添加方法,这个我就不详细写了,我添加了一个add,如下:

STDMETHODIMP Ctest::add(LONG a, LONG b, LONG* c) {AFX_MANAGE_STATE(AfxGetStaticModuleState());// TODO:  在此添加实现代码*c = a + b;return S_OK; }

5,然后是编译并且自动注册成组件,重启apache服务。php脚本中如下调用:

<?php$conn = new COM("ATLProject3.test") or die("Cannot start ADO"); $com = 2; $conn->add(10, 2, $com); echo $com;  ?>

注意是”组件名.简称“的格式才正确。网上示例中是”组件名.类名“,可能是版本问题,反正我那样调用是失败的。

6,浏览器输入自己php工程目录,显示加载COM组件正常,成功使用COM组件使10加2输出为12.

怎么解决php com组件报错问题

以上是“怎么解决php com组件报错问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么解决php com组件报错问题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么解决php com组件报错问题

小编给大家分享一下怎么解决php com组件报错问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php com组件报错的解决办法:1、在php.ini中修改配置
2023-06-08

怎么解决php exec报错问题

今天给大家介绍一下怎么解决php exec报错问题。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。php exec报错的解决办法:1、修改ping或者对应命令的
2023-06-29

怎么解决php 40001报错问题

这篇文章主要讲解了“怎么解决php 40001报错问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决php 40001报错问题”吧!出现php 40001报错是因为access_to
2023-06-22

怎么解决strict standards php报错问题

这篇文章给大家分享的是有关怎么解决strict standards php报错问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。strict standards php报错的解决办法:1、在父类之后定义继承类;2
2023-06-22

怎么解决php中mysql_query报错的问题

这篇文章给大家分享的是有关怎么解决php中mysql_query报错的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php mysql_query报错的解决办法:1、使用代码“$db=$db?$db:new
2023-06-14

php fileinfo安装报错问题怎么解决

这篇文章主要讲解了“php fileinfo安装报错问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php fileinfo安装报错问题怎么解决”吧!php fileinfo安装报
2023-06-26

怎么解决php界定符报错问题

这篇文章跟大家分析一下“怎么解决php界定符报错问题”。内容详细易懂,对“怎么解决php界定符报错问题”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“怎么解决php界定符报错问题”
2023-06-28

怎么解决获取VirtualBox COM对象失败错误问题

这篇文章主要介绍“怎么解决获取VirtualBox COM对象失败错误问题”,在日常操作中,相信很多人在怎么解决获取VirtualBox COM对象失败错误问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎
2023-06-22

npm报错问题怎么解决

本篇内容主要讲解“npm报错问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“npm报错问题怎么解决”吧!一、npm安装依赖失败问题问题描述:错误信息: unbuild: sill ge
2023-06-29

SAP报错问题怎么解决

今天小编给大家分享一下SAP报错问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。报错如下:不含来自带工厂分配的供应
2023-06-05

tensorflow.keras报错问题怎么解决

在解决TensorFlow.Keras报错问题时,可以尝试以下方法:更新TensorFlow和Keras的版本:确保你使用的是最新版本的TensorFlow和Keras,因为较新的版本通常修复了之前版本的Bug。检查代码错误:仔细检查你的代
tensorflow.keras报错问题怎么解决
2024-03-15

怎么解决php上传文件出错问题

这篇文章将为大家详细讲解有关怎么解决php上传文件出错问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php上传文件出错的解决办法:1、在php.ini配置文件中设置“post_max_size”的值;
2023-06-08

怎么解决php redis502错误问题

今天给大家介绍一下怎么解决php redis502错误问题。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。php redis502错误的解决办法:1、使用“su
2023-06-29

怎么解决php fpm出错问题

这篇文章主要介绍“怎么解决php fpm出错问题”,在日常操作中,相信很多人在怎么解决php fpm出错问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决php fpm出错问题”的疑惑有所帮助!接下来
2023-06-26

如何解决php 40001报错问题

出现php 40001报错是因为access_token过期或不是最新的,导致发送模板消息报错,其解决办法就是重新修改access_token即可。
2021-10-22

怎么解决php 535错误问题

今天小编给大家分享一下怎么解决php 535错误问题的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。php 535错误的解决办
2023-06-26

如何解决php exec报错问题

php exec报错的解决办法:1、修改ping或者对应命令的执行权限;2、将命令全路径补全“exec('/usr/sbin',$output);”;3、在环境变量中增加目标目录。
2020-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录