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,不用COM,生成excel文件
Oct 09 PHP
在IIS上安装PHP4.0正式版
Oct 09 PHP
PHP垃圾回收机制引用计数器概念分析
Jun 24 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
Feb 16 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
php PDO实现的事务回滚示例
Mar 23 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 PHP
设定php简写功能的方法
Nov 28 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 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登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
Python实现远程调用MetaSploit的方法
2014/08/22 Python
Python的Urllib库的基本使用教程
2015/04/30 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
django 常用orm操作详解
2017/09/13 Python
python决策树之C4.5算法详解
2017/12/20 Python
python实现图书管理系统
2018/03/12 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
Python中os模块功能与用法详解
2020/02/26 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
基于python实现计算两组数据P值
2020/07/10 Python
临床医师专业个人自我评价
2014/01/08 职场文书
园艺师求职信
2014/03/10 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
销售员岗位职责范本
2015/04/11 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
Apache POI的基本使用详解
2021/11/07 Servers
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
拙作再改《我的收音机情缘》
2022/04/05 无线电