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

一、用VC创建COM组件

1、vc新建项目 -> ATL项目,输入名称ComTest,ComTest将作为COM组件的名称。

3b95a0dc537da994cd85dffa635c691d.png

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

83b5d9bf9d8b17dd0e3d38e6686cb0a0.png

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

7c33d89a03a7ad029d7124f393bdef11.png

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

30288bb6fefa6a1f293fc0922cd7c238.png

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

8eaa4aa0c1ebb3d88d7b5e4ecfd0d7ee.png

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

487a9d10aeb8b98a1a246924394cb943.png

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组件

复制代码 代码如下:

$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的机子才能使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值