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 求质素(素数) 的实现代码
Apr 12 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
Jul 03 PHP
php加密解密实用类分享
Jan 07 PHP
php警告Creating default object from empty value 问题的解决方法
Apr 02 PHP
php操作MongoDB类实例
Jun 17 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
PHP中的session安全吗?
Jan 22 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
php将字符串转换为数组实例讲解
May 05 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编写一个简单的路由类
2011/04/13 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
Python for循环及基础用法详解
2019/11/08 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
使用K.function()调试keras操作
2020/06/17 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
护理不良事件检讨书
2014/02/06 职场文书
房地产促销活动方案
2014/03/01 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
python基础之爬虫入门
2021/05/10 Python
HTML中的表单元素介绍
2022/02/28 HTML / CSS
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫
浅谈Python中对象是如何被调用的
2022/04/06 Python