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


Posted in PHP onMarch 29, 2014
 
一、用VC创建COM组件
1、vc新建项目 -> ATL项目,输入名称ComTest,ComTest将作为COM组件的名称。
PHP调用VC编写的COM组件实例

2、到了ATL项目向导,不需要改动,完成向导。向导完成后,vc将会自动生成一系列的程序。
PHP调用VC编写的COM组件实例

3、切换到类视图,在ComTest项右键,添加类,选择ATL简单对象,
PHP调用VC编写的COM组件实例

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

5、回到类视图中,在IMyClass右键,添加方法,将会进入添加方法的向导。
PHP调用VC编写的COM组件实例

6、来到添加方法向导,我们想实现计算2个数相加的功能,如下,参数a和b都是[in] Long,c为COM返回参数,为[out, retval] Long*,是一个指针。完成向导。
PHP调用VC编写的COM组件实例
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 相关文章推荐
PHP循环语句笔记(foreach,list)
Nov 29 PHP
关于svn冲突的解决方法
Jun 21 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 PHP
php检测文件编码的方法示例
Apr 25 PHP
详解Window7 下开发php扩展
Dec 31 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
php执行多个存储过程的方法【基于thinkPHP】
Nov 08 PHP
Yii框架弹出框功能示例
Jan 07 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
PHP convert_uudecode()函数讲解
Feb 14 PHP
php+lottery.js实现九宫格抽奖功能
Jul 21 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 PHP
php定义数组和使用示例(php数组的定义方法)
Mar 29 #PHP
php类声明和php类使用方法示例分享
Mar 29 #PHP
php中cookie的使用方法
Mar 29 #PHP
php中session使用示例
Mar 29 #PHP
thinkphp验证码显示不出来的解决方法
Mar 29 #PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 #PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 #PHP
You might like
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
python中的reduce内建函数使用方法指南
2014/08/31 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
python写入已存在的excel数据实例
2018/05/03 Python
Django 路由控制的实现代码
2018/11/08 Python
python3实现弹弹球小游戏
2019/11/25 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
英国在线泳装店:Simply Swim
2019/05/05 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
超市端午节活动方案
2014/01/23 职场文书
新学期教师寄语
2014/04/02 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
技校毕业生自荐信
2014/06/03 职场文书
副总经理任命书
2014/06/05 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
倡议书的写法
2014/08/30 职场文书
2015新学期家长寄语
2015/02/26 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers