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 相关文章推荐
Apache实现Web Server负载均衡详解(不考虑Session版)
Jul 05 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
php生成N个不重复的随机数实例
Nov 12 PHP
PHP文件上传判断file是否己选择上传文件的方法
Nov 10 PHP
PHP实现的增强性mhash函数
May 27 PHP
php图片添加文字水印实现代码
Mar 15 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
php禁用函数设置及查看方法详解
Jul 25 PHP
php+mysql实现简单登录注册修改密码网页
Nov 30 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
PHP 7.4中使用预加载的方法详解
Jul 08 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
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
WebPack基础知识详解
2017/01/16 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
全国道德模范事迹
2014/02/01 职场文书
《识字五》教学反思
2014/03/01 职场文书
工作说明书范文
2014/05/07 职场文书
县级文明单位申报材料
2014/05/23 职场文书
企业趣味活动方案
2014/08/21 职场文书
2015元旦标语横幅
2014/12/09 职场文书
优秀团员个人总结
2015/02/26 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
MySQL 如何设计统计数据表
2021/06/15 MySQL
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python