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中输出转义JavaScript代码的实现代码
Apr 22 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
Sep 26 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
php验证session无效的解决方法
Nov 04 PHP
PHP易混淆函数的区别及用法汇总
Nov 22 PHP
PHP生成随机数的方法实例分析
Jan 22 PHP
php简单分页类实现方法
Feb 26 PHP
PHP线程的内存回收问题
Jul 08 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 PHP
PHP实现的曲线统计图表示例
Nov 10 PHP
PHP生成图片缩略图类示例
Jan 12 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文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
Git命令之分支详解
2021/03/02 PHP
JS 文件大小判断的实现代码
2010/04/07 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
python解析中国天气网的天气数据
2014/03/21 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
python输出带颜色字体实例方法
2019/09/01 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
python之随机数函数的实现示例
2020/12/30 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
管理科学大学生求职信
2013/11/13 职场文书
店长职务说明书
2014/02/04 职场文书
厂办主管岗位职责范本
2014/02/28 职场文书
继续教育个人总结
2015/03/03 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
Javascript 解构赋值详情
2021/11/17 Javascript
Java版 单机五子棋
2022/05/04 Java/Android