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冒泡排序算法的深入理解
Jun 09 PHP
生成随机字符串和验证码的类的PHP实例
Dec 24 PHP
php网站被挂木马后的修复方法总结
Nov 06 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
Feb 04 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 PHP
PHP Trait代码复用类与多继承实现方法详解
Jun 17 PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 PHP
PHP 文件写入和读取操作实例详解【必看篇】
Nov 04 PHP
PHP连接MySQL数据库操作代码实例解析
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
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
JS生成随机字符串的多种方法
2014/06/10 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python基本数据类型详细介绍
2014/03/11 Python
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
Python实现堆排序的方法详解
2016/05/03 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
英文简历中的自荐信范文
2013/12/14 职场文书
优秀毕业自我鉴定
2014/02/15 职场文书
周年庆促销方案
2014/03/15 职场文书
请假条范文大全
2014/04/10 职场文书
房屋转让协议书
2014/04/11 职场文书
个人工作表现评价材料
2014/09/21 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript