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 相关文章推荐
COM in PHP (winows only)
Oct 09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 PHP
网友原创的PHP模板类代码
Sep 07 PHP
php 全局变量范围分析
Aug 07 PHP
php 取得瑞年与平年的天数的代码
Aug 10 PHP
zend framework多模块多布局配置
Feb 26 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
Jun 10 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
php7中停止php-fpm服务的方法详解
May 09 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
一篇不错的PHP基础学习笔记
2007/03/18 PHP
php中函数前加&amp;符号的作用分解
2014/07/08 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
初识PHP中的Swoole
2016/04/05 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
JS实现滚动条触底加载更多
2019/09/19 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
Python编程中time模块的一些关键用法解析
2016/01/19 Python
python实现比较文件内容异同
2018/06/22 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
python 基于opencv去除图片阴影
2021/01/26 Python
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
日语专业毕业生自荐信
2013/11/11 职场文书
社会调查研究计划书
2014/05/01 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android