首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

php怎么调用c++写的dll

2012-03-28 
php如何调用c++写的dll首先注意问题1: php调用c++写的dll不是c的dll(区别就是c++面向对象, 我设计的dll中

php如何调用c++写的dll
首先注意问题 
1: php调用c++写的dll不是c的dll(区别就是c++面向对象, 我设计的dll中 几乎没有单独的函数接口,
  全部封装在类中,至于我怎么导出类接口你不用管)

2: 不使用com技术(可以利用com思想,但是各位不要在没有准备的情况下夸夸其谈, 说什么按照com的原理编写之类的话,
  要实际点的方案), 想做跨平台

此帖最高分200如果能成功帮助我解决问题的话


[解决办法]
用shell_exec();或者exec()函数调用rundll32.exe可以调用单独的函数方法的。但是对你,有个问题,那就是你说没有单独的函数接口,全都封装在类里。你的意思说让php调用C++编写的dll中的导出类?
[解决办法]
C++的dll满不方便的,我建议用extern "C"来使用C风格的导出方法,这样比较方便。
我以前研究C++的导出,研究了很久也没有效果。

rundll32.exe的用法是:rundll32.exe C:\test.dll,functionname

functionname是导出的直接接口方法
[解决办法]
我很抱歉的告诉你,rundll32.exe不支持返回值的函数方法。
[解决办法]
你想使用系统之间的进程共享通信?这个方面我还是满清楚的。
进程通信无外乎那么几个方法,管道,油槽或是别的一些方法。你想用php与一个系统进程通信,基本不可能。2种平台,首先,php能霸占解释器(IE或是别的)的进程?显然不可能。它和系统底层的东西离得太远了,rundll32是系统自带的,你也不能随意的DIY吧?进程之间的通信是要预先都要留好后门的。

热点排行