当前位置: 代码迷 >> VC >> php怎么调用c++写的dll
  详细解决方案

php怎么调用c++写的dll

热度:3314   发布时间:2013-02-25 00:00:00.0
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吧?进程之间的通信是要预先都要留好后门的。

  相关解决方案