广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >怎么解决php com组件报错问题
  • 385
分享到

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

2023-06-08 00:06:51 385人浏览 薄情痞子
摘要

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

小编给大家分享一下怎么解决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组件报错问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网PHP编程频道!

--结束END--

本文标题: 怎么解决php com组件报错问题

本文链接: https://www.lsjlt.com/news/250645.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 怎么解决php com组件报错问题
    小编给大家分享一下怎么解决php com组件报错问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php com组件报错的解决办法:1、在php.ini中修改配置...
    99+
    2023-06-08
  • 怎么解决php exec报错问题
    今天给大家介绍一下怎么解决php exec报错问题。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。php exec报错的解决办法:1、修改ping或者对应命令的...
    99+
    2023-06-29
  • 怎么解决php 40001报错问题
    这篇文章主要讲解了“怎么解决php 40001报错问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决php 40001报错问题”吧!出现php 40001报错是因为access_to...
    99+
    2023-06-22
  • 怎么解决strict standards php报错问题
    这篇文章给大家分享的是有关怎么解决strict standards php报错问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。strict standards php报错的解决办法:1、在父类之后定义继承类;2...
    99+
    2023-06-22
  • 怎么解决php中mysql_query报错的问题
    这篇文章给大家分享的是有关怎么解决php中mysql_query报错的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php mysql_query报错的解决办法:1、使用代码“$db=$db$db:new m...
    99+
    2023-06-14
  • php fileinfo安装报错问题怎么解决
    这篇文章主要讲解了“php fileinfo安装报错问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php fileinfo安装报错问题怎么解决”吧!php fileinfo安装报...
    99+
    2023-06-26
  • 怎么解决php界定符报错问题
    这篇文章跟大家分析一下“怎么解决php界定符报错问题”。内容详细易懂,对“怎么解决php界定符报错问题”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“怎么解决php界定符报错问题”...
    99+
    2023-06-28
  • SAP报错问题怎么解决
    今天小编给大家分享一下SAP报错问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。报错如下:不含来自带工厂分配的供应...
    99+
    2023-06-05
  • npm报错问题怎么解决
    本篇内容主要讲解“npm报错问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“npm报错问题怎么解决”吧!一、npm安装依赖失败问题问题描述:错误信息: unbuild: sill ge...
    99+
    2023-06-29
  • vue父组件调用子组件方法报错问题及解决
    目录vue父组件调用子组件方法报错vue父组件调用子组件方法及遇到的问题vue父组件调用子组件方法报错 在父组件定义了一个tab标签页,每一个标签页下面都调用不同的组件, 如下图所示...
    99+
    2022-11-13
  • 怎么解决获取VirtualBox COM对象失败错误问题
    这篇文章主要介绍“怎么解决获取VirtualBox COM对象失败错误问题”,在日常操作中,相信很多人在怎么解决获取VirtualBox COM对象失败错误问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎...
    99+
    2023-06-22
  • 怎么解决thinkphp5 exit报错问题
    这篇文章主要讲解了“怎么解决thinkphp5 exit报错问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决thinkphp5 exit报错问题”吧!exit报错的产生原因exit...
    99+
    2023-07-05
  • 怎么解决sockjs-node 报错问题
    这篇文章给大家分享的是有关怎么解决sockjs-node 报错问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 sockjs-node报错的解决办法...
    99+
    2022-10-19
  • 怎么解决node gyp报错问题
    这篇文章主要介绍怎么解决node gyp报错问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! node gyp报错的解决办法:1、打开cmd管理员模式;...
    99+
    2022-10-19
  • git pull报错问题怎么解决
    本篇内容主要讲解“git pull报错问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“git pull报错问题怎么解决”吧!如果git pull发生错误,首先需要分析错误信息,找出问题...
    99+
    2023-07-05
  • thinkphp hy2002报错问题怎么解决
    本篇内容介绍了“thinkphp hy2002报错问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、常见的错误类型在使用thin...
    99+
    2023-07-06
  • 如何解决第三方组件的Hooks报错问题
    这篇文章主要介绍“如何解决第三方组件的Hooks报错问题”,在日常操作中,相信很多人在如何解决第三方组件的Hooks报错问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何...
    99+
    2022-10-19
  • 如何解决php 40001报错问题
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。如何解决php 40001报错问题?PHP 发送微信模板消息报40001 invalid credential, access_token is invalid or ...
    99+
    2021-10-22
    php
  • 如何解决php define 报错问题
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑如何解决php define 报错问题?define()方法定义ture后报错    在PHP中,通常情况下我们可以使用define()方法定义常量,同时还可以通过定义第...
    99+
    2016-01-30
    php define
  • 如何解决php exec报错问题
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑如何解决php exec报错问题?PHP中exec()函数执行系统命令失败?0.说明在php中,我们可以使用exec()来执行系统命令,但有时我们会遇到exec()命令执...
    99+
    2020-05-31
    php linux exec
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作