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基础知识:函数基础知识
Dec 13 PHP
php垃圾代码优化操作代码
Aug 05 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
深入理解php的MySQL连接类
Jun 07 PHP
php权重计算方法代码分享
Jan 09 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
Laravel 4.2 中队列服务(queue)使用感受
Oct 30 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
php示例详解Constructor Prototype Pattern 原型模式
Oct 15 PHP
Symfony的安装和配置方法
Mar 17 PHP
Laravel实现autoload方法详解
May 07 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 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版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
Js base64 加密解密介绍
2013/10/11 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
总结Python中逻辑运算符的使用
2015/05/13 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
python可视化实现代码
2019/01/15 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
考试作弊被抓检讨书
2014/01/10 职场文书
村委会贫困证明
2014/01/14 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
新年团拜会主持词
2014/04/02 职场文书
土地转让协议书范本
2014/04/15 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
总经理检讨书范文
2015/02/16 职场文书
TypeScript 内置高级类型编程示例
2022/09/23 Javascript