没有做过,一般好像是用exec调用外部编绎好的程序,可能是我见习短吧,见谅

解决方案 »

  1.   

    写PHP的扩展函数 是c而不是c++。你下载php的源代码看看就知道了
      

  2.   


    我来推荐一个网站吧
    http://pecl.php.net/
    有些资料,不过也很不丰满
      

  3.   

    php manual里的zend有说明extend的实现标准要求.
      

  4.   

    To xuzuning(唠叨):
    PHP的源代码是ANSI C写的,并不是说就不能用C++开发PHP扩展。完全可以用C++写的,只不过跟C有一点点不同而已。To heylin :
    1、文件扩展名由“.c”改为“.cpp”2、引入头文件部分需要加入一些代码,如下所示:
    #ifdef __cplusplus
    extern "C" {
    #endif
    ...
    ...
    #ifdef __cplusplus
    }
    #endif比如:引入php.h
    C中只需#include "php.h"即可,而C++中要改为:
    #ifdef __cplusplus
    extern "C" {
    #endif
    #include "php.h"
    #ifdef __cplusplus
    }
    #endif3、ZEND_GET_MODULE()部分也要加入,比如你的扩展名称为“yourext”
    C代码:
    #ifdef COMPILE_DL_YOUREXT
    ZEND_GET_MODULE(yourext)
    #endifC++代码:
    #ifdef COMPILE_DL_YOUREXT
    #ifdef __cplusplus
    extern "C" {
    #endif
    ZEND_GET_MODULE(yourext)
    #ifdef __cplusplus
    }
    #endif
    #endif
      

  5.   

    TO: phpteam() 
    1、文件扩展名由“.c”改为“.cpp”,编译是没有问题的.2、引入头文件部分需要加入一些代码,如下所示:
    #ifdef __cplusplus
    extern "C" {
    #endif
    #include <iostream>
    #ifdef __cplusplus
    }
    #endif
    还是出现一样的编译错误:VC98\INCLUDE\eh.h(32) : fatal error C1189: #error :  "eh.h is only for C++!"
      

  6.   

    #include <iostream>不需要放在中间,只用把C写的头文件放在中间#include <iostream>
    #ifdef __cplusplus
    extern "C" {
    #endif
    #include "php.h"
    #ifdef __cplusplus
    }
    #endif
      

  7.   

    你这种情况应该是有些扩展名.c还没改成.cpp吧,以致于VC还认为是C,好象有个选项\Tp可以指定为用C++编译吧
      

  8.   

    你上面说的不行的,它认.cpp文件,但就是不认C++独有的头文件.
      

  9.   

    yat. 因为php的引擎是使用c来完成的.
    而且c和c++的编译器对代码的编译方式并不一样, 编译后函数的地址并不一样,
    所以会使得php引擎/解释器无法定位到函数的地址. so. 目前是无法使用c++来为php写扩展的, 确切地说, 是无法用c++的编译器来为php写扩展(即是是用c).但可能有一个变通的方法...就是在中间加一个c的过渡.但我没有去实现过, 有兴趣可以参考:
    http://www.phpbuilder.com/lists/php3-list/199804/0009.phpBTW. 我并不了解VC. 以上是我在linux下的经验.
      

  10.   

    To fishchen(小瑜):
    建议你看看http://bugs.tutorbuddy.com//phpcpp/phpcpp/这篇文章吧,况且偶也用C++写过好几个PHP扩展,最具代表性的就是http://www.phpsalon.com/ezsms/To 楼主:
    还是仔细检查一遍吧,编译的加入\Tp选项试试看,若还不行,可以去VC++版块问一下,我能做的也就这么多了。
      

  11.   

    TO:phpteam()
    我在VC->setting->c/c++->Project Option里加上/Tp,编译后出现
    错误如下:
    fatal error C1083: Cannot open source file: '/Tp': No such file or directory
      

  12.   

    我是加/Tc好用,但是不认C++独有标准头文件,如#include <string>  #inlude <iostream>
      

  13.   

    你把.dsp文件部分的内容贴出来看看吧!