首页 新闻 会员 周边 捐助

请问如何在COM组件中返回C++的对象

0
悬赏园豆:30 [待解决问题]

我有一个DLL开源组件组件,想在PHP中调用

我准备以COM包装的办法,其中有几个方法是需要把DLL中的对象传递到PHP中

请问应该如何实现

问题补充:

关于 ATL COM

淘气的小屁孩的主页 淘气的小屁孩 | 初学一级 | 园豆:70
提问于:2012-02-28 10:08
< >
分享
所有回答(2)
0
az235 | 园豆:8483 (大侠五级) | 2012-02-28 11:41

我想用new COM 呢?

而且我是想从ATL COM 接收到一些 C++ 里面的 对象

支持(0) 反对(0) 淘气的小屁孩 | 园豆:70 (初学一级) | 2012-02-28 11:44
0

用ComPtr<***>可以,但是php应该不认识指针

其实你可以用IDispatch将对象的引用传出来(高级语言中叫做引用传递),然后你在php中构建一个一模一样的对象,比如c++中对象的第一个属性是int的4个字节,那么你php中也需要第一个是4字节的,这个类似网络通讯,无非数据在同一台电脑的内存而已。将IDispatch传过来的引用强转成你新写的对象,数据就过来了,操作的还是原来那块内存

| 园豆:264 (菜鸟二级) | 2012-02-28 11:42

是IUnknown** 还是 IDispatch**

请指点

支持(0) 反对(0) 淘气的小屁孩 | 园豆:70 (初学一级) | 2012-02-28 11:49
支持(0) 反对(0) | 园豆:264 (菜鸟二级) | 2012-02-28 13:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册