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下连接mssql2005的代码
Jan 17 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
zf框架的Filter过滤器使用示例
Mar 13 PHP
php中session使用示例
Mar 29 PHP
php判断电脑访问、手机访问的例子
May 10 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
windows 2008r2+php5.6.28环境搭建详细过程
Jun 18 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
PHP常用函数之获取汉字首字母功能示例
Oct 21 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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
基于mysql的bbs设计(五)
2006/10/09 PHP
php 文件上传系统手记
2009/10/26 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
电视购物广告词
2014/03/19 职场文书
银行委托书范本
2014/04/04 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
亮剑观后感300字
2015/06/05 职场文书
python实现进度条的多种实现
2021/04/29 Python
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB
Tomcat用户管理的优化配置详解
2022/03/31 Servers
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技