PHP调用VC编写的COM组件实例

php调用dll经验小结 <br />      最近做一个网站,需要频繁使用远程数据,数据接口已经做好。在做转换的时候遇到了性能上的问题:开始打算用php来实现转换,苦苦查了数天,都没有找到直接操作字节的方法。虽然可以使用 pack() 方法将各个数据压入结构中,但是在解压的时候却不能通过 unpack() 简单的解出来,需要通过//php code<br />for( $i = 0; $i < $length; $i+=2 ){<br />    $tempstr = $tempstr.chr( hexdec(substr($a 阅读详情
一、用VC创建COM组件
1、vc新建项目 -> ATL项目,输入名称ComTest,ComTest将作为COM组件的名称。


2、到了ATL项目向导,不需要改动,完成向导。向导完成后,vc将会自动生成一系列的程序。


3、切换到类视图,在ComTest项右键,添加类,选择ATL简单对象,


4、来到ATL简单对象向导,输入你要新建的类名 MyClass,完成向导。(注意了,还要填写ProgID,有些vs会自动补全)


5、回到类视图中,在IMyClass右键,添加方法,将会进入添加方法的向导。


6、来到添加方法向导,我们想实现计算2个数相加的功能,如下,参数a和b都是[in] Long,c为COM返回参数,为[out, retval] Long*,是一个指针。完成向导。

7、在MyClass.cpp找到我们刚刚添加的方法,add(LONG a, LONG b, LONG* c),修改如下:
复制代码 代码如下:
STDMETHODIMP CMyClass::add(LONG a, LONG b, LONG* c) 
{ 
    *c = a + b; 
    return S_OK; 
}

8、编译后,在生成目录找到ComTest.dll,注册到系统
复制代码 代码如下:
regsvr32 ComTest.dll

二、PHP调用COM组件

复制代码 代码如下:
<?php 

$com = new COM("ComTest.MyClass") or die("无法调用ComTest"); 
echo $com->add(1, 2); 

正常情况下,到这里就完成了。

但默认情况下,PHP调用COM组件的功能是没有打开的。PHP执行以上代码就会报 Fatal error: Class 'COM' not found 错误。修改PHP配置,如下:

复制代码 代码如下:

extension=php_com_dotnet.dll 

结束语
这个功能是PHP调用COM组件的功能,虽然很方便调用,开发也比较简单,但也因为使用COM组件技术,限定了只有Windows的机子才能使用。
PHP VC各版本运行库32位+64位 PHP VC各版本运行库32位+64位 VC9 VC11 VC14 VC15都有哦!!! 立即下载

相关推荐

php环境支持运行库c++ vc全版本

文件里面只有一个链接,其他什么都没有,不用下载。资源请到下方下载。只能帮到大家这里了,谢谢. https://pan.baidu.com/s/1_1CGupFPB8gP1fx9bmiHoQ

VC编写COM组件提供PHP调用

最近项目需要PHP来解析二进制数据,如果直接PHP做比较麻烦,就想到VC编写COM组件来做,提供PHP调用。文章将介绍VC编写COM组件提供PHP调用,实现一个计算两个数字相加的功能。 用VC创建COM组件 1、vc新建项目 -&gt; ATL项目,输入名称ComTest,ComTest将作为COM组件的名称。 2、到了ATL项目向导,不需要改动,完成向导。向导完成后,vc将会...

ve12345的博客 241

qemu(2) -- 定制开发板

向qemu源码中添加自定义开发板

xflm的博客 843

vc中调用Com组件的五种方法详解

vc中调用Com组件的方法详解 转载自:http://www.cppblog.com/woaidongmao/archive/2011/01/10/138250.html 需求: 1.创建myCom.dll,该COM只有一个组件,两个接口:    IGetRes--方法Hello(),    IGetResEx--方法HelloEx() 2.在工程中导入组件或类型库

blacet的专栏 1万+

Windows 11“此应用已被管理员阻止运行”解决方案

通过本文介绍的两种方法,你应该能够解决Windows 11中“此应用已被管理员阻止运行”的问题。无论你选择创建新管理员账户还是禁用管理员批准模式,都请确保了解相关操作的风险,并根据你的实际需求做出选择。通过禁用“用户账户控制:以管理员批准模式运行所有管理员”设置,可以解决因系统安全设置导致的应用程序被阻止运行的问题。这种方法适用于那些希望简化管理员账户操作流程的用户,但需要注意可能带来的安全风险。通过创建并登录具有管理员权限的新账户,可以解决因系统安全设置导致的应用程序被阻止运行的问题。

mmoo_python的博客 1万+

本地服务器搭建Uptime Kuma网站监控服务

本文主要介绍如何在Linux系统中一键部署Uptime Kuma运维监控服务,并将这个服务映射至公网实现随时随地远程访问。如果您像我一样在服务器上托管了多个网站,并且没有足够的时间来手动检查每个网站的在线状态,那么当出现问题时,您可能无法及时收到通知来处理这些问题。因此,搭建一个在线监控服务是很有必要的,它可以在状态异常时提醒您,以便您能够及时处理问题,确保网站的稳定性和可用性。监控服务有很多,我最终选择了Uptime Kuma,因为Uptime Kuma是开源免费的,

Tiam_cr的博客 1823

php开启com组件

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34343000的博客 264

手把手教你用C#实现TwinCAT 3 ADS通讯(附完整代码示例)

本文详细解析了如何使用C#实现TwinCAT 3 ADS通讯,包括协议核心价值、开发环境配置、变量通信实践及高级应用场景。通过完整代码示例和性能优化技巧,帮助开发者高效实现工业自动化系统中的实时数据交换,特别适合倍福(Beckhoff)平台用户。

weixin_29230901的博客 117

php 如何开启com组件?

先到PHP.INI中打开COM选项,com.allow_dcom = true 注意: PHP 5.4.5后,com/dotnet 模块已经成了单独的扩展,所以需要在PHP.ini中配置extension=php_com_dotnet.dll ,如果PHP VERSION&lt;5.4.5 则不需要。     php通过COM类调用组件 COM(Component Object M...

ljl_xyf的专栏 798

电子技术设计——16×16点阵汉字显示设计

同时,设计还应注重提升显示品质,以保证汉字的稳定展示和观感舒适。本设计的目的是构建一个能够准确在LED点阵上展示汉字的系统,并允许用户通过输入设备来选择所需的汉字,我们将验证设计方案的实际操作性和效果,以确保其满足设计目标。在LED点阵显示和汉字信息处理技术的结合下,研究者们着手研究如何在LED点阵上有效地显示汉字,并提出了一系列显示算法和优化策略,旨在实现清晰且易于阅读的汉字显示效果。首先,你需要准备16×16的LED点阵面板,通常这些点阵是8×8点阵的两倍,因此可以由两个8×8的点阵组合而成。

weixin_68094467的博客 1533

matlab 质心重合法实现点云配准【2026最新版】

质心重合法是将源点云和目标点云的质心重合,以此缩小两点云集之间的平移误差,从而为下一步粗配准提供更好的初始位置姿态。

点云侠的博客 510

php如何打开com组件,php开启com组件

在交通银行的开发借口中需要调用com组件,组件开启方法1、首先在windows的“服务”里面检查COM+服务是否已经启动。如果未启动,请启动它。2、检查php目录ext文件夹下面php_com_dotnet.dll是否存在。说明:php的windows安装包是没有php_com_dotnet.dll文件的,需要下载相应php版本的zip源包 解压之后在ext目录下会有php_com_dotnet....

weixin_30099989的博客 1237

大语言模型应用指南:幻觉和偏见问题

大语言模型应用指南:幻觉和偏见问题 1. 背景介绍 1.1 大语言模型的发展历程 1.1.1 早期的语言模型 1.1.2 Tr

AI天才研究院 959

c 标准 com组件 php 调用,PHP调用VC编写的COM组件实例

一、用VC创建COM组件1、vc新建项目 -> ATL项目,输入名称ComTest,ComTest将作为COM组件的名称。2、到了ATL项目向导,不需要改动,完成向导。向导完成后,vc将会自动生成一系列的程序。3、切换到类视图,在ComTest项右键,添加类,选择ATL简单对象,4、来到ATL简单对象向导,输入你要新建的类名 MyClass,完成向导。(注意了,还要填写ProgID,有些vs...

weixin_33507838的博客 829

界面材料知识

界面材料(TIM)用于芯片和散热器之间的导热作用,将低导热系数的空气(空气的导热系数(0.026 W /M·K))排除,换成高导热系数,低热阻导热系数的材料。具体的:TIM1为芯片DIE和芯片保护壳之间的界面材料,一般是直接焊接的方式,比如使用铟片,有很高的导热系数;芯片厂工程师主要找的是TIM1界面材料。TIM1.5为芯片Die和散热器之间的界面材料,比较少见;TIM2为我们所常见的界面材料,用于芯片外壳和散热器之间。(图片来源网上)

YY_Share的博客 1854

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

VS2010编写COM组件提供PHP调用

参考:http://blog.youkuaiyun.com/mycwq/article/details/22417961 参见:http://www.phpnotes.top/2017/12/04/php/79/ 用VC创建COM组件 1、vc新建项目 -> ATL项目,输入名称ComTest,ComTest将作为COM组件的名称。   2、到了ATL项目向导,不需要改动,完成向导。向导完...

htpidk的博客 191

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C#如何编写调用COM组件的程序

VS C#.net如何编写调用COM组件的程序? 请给出一个开发过程的例子. 我引用了一个MS 的Rich Edit的Com组件,在WebForm1.aspx中却没有该组件的名称,我给组件一个Id(RichEdit1),还是无法应用,请高手指点. 谢谢! --------------------------------------------------------------- 首先感谢您使

soonsnipe的专栏 6998

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

在vc中调用vb的dll文件

<br />      假设用vb编写了一个ActiveX 组件,名称为BioxSend,里面生成一个类Test,类里面有一个方法Hello(),并且已经在电脑上注册,下面分别描述怎样在VB和vc中调用。<br />1. VB调用<br />(1) 方法1:直接在project/reference里引用该DLL,然后在使用时声明就可以了,代码如下:<br />dim aa as new Test<br />aa.Hello<br />set aa=nothing<br />(2) 方法2:直接定义为obje

studyandhappy的专栏 1818

php调用c dll,PHP调用DLL的方法

在PHP 4.2.0 至 4.2.3中,可以使用w32api_register_function 函数调用外部的DLL,前提是需要在php.ini中打开扩展的php_w32api.dll。如果使用的是PHP 5,调用DLL只有使用PHP的COM类了。基本方法为:$obj = new COM("server.object")下面介绍如何用PHP调用COM组件,采用的是msvs.net2005环境下的...

weixin_31900373的博客 4006

VC调用C#生成的类库DLL方法

VC调用C#生成的类库DLL方法 相关代码与原文地址 http://www.panshy.com/article/Sort_Desktop/other/2013-06-25/2415.php VC调用C#生成的类库DLL方法       最新因为工作项目上的需求,VC需要调用C#开发的DLL,本来以为是很简单的事,可实际不是这样,因为C#编译出来的DLL与VC、VB、Delph

嬴政 1万+

PHP调用COM的实现(VC6) .

PHP调用COM的实现(VC6) 2009-02-25 17:10 671人阅读 评论(0)收藏 举报 项目中需要用DLL实现一些服务端的运算,故想到用COM来实现以下是在通过网上别人例子所做的总结: 在VC++ 6.0中,File -> New...  选择Projects中的"ATL COM AppWizard",填写工程名称等。本例中,工程名为"ATLtest"。在"A

msbbc的专栏 1206

Hello World!之php调用COM+组件(转)

上次继本人发布了VC编写PHP扩展之Hello World篇后,反映很强烈,大家都希望能脱离PHP菜鸟行列,这次我给大家带来PHP调用C#编写的COM+组件。 COM+组件源代码 CODE:using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices;

yeahcheung1的专栏 454

vs的类库php能调用,PHP调用C#开发的dll类库方法

PHP调用C#开发的dll类库方法发布于 2014-08-09 22:43:39 | 301 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为ph...

weixin_42517019的博客 196
上一篇: Hello world
下一篇: COM组件设计与应用之VC6中用ATL写组件
程序二次开发
博客等级 码龄18年 47粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值