今天又想试试写php扩展,先从编译sample开始。
首先用ext_skel_win32.php生成骨架代码。这个需要cygwin。如果cygwin不在c:\cygwin,那么需要修改这个文件,指定cygwin的位置。比如:$cygwin_path = 'd:\cygwin\bin';
之后用vc2008打开生成的dsp工程文件,升级工程文件以后,把工程选项里的C/C++ -> Code Generation里的Runtime Library改成Multi-threaded DLL (/MD);C/C++ -> Advanced里的Compile As设成Compile as C Code (/TC)。
然后就编译,居然就没通过有几个语法错误…… 搜索了一下,发现还要改两个地方:
Zend/Zend.h:
把#include <stdio.h> 搬到
#ifdef ZEND_WIN32
# include "zend_config.w32.h"
# define ZEND_PATHS_SEPARATOR ';'
#elif defined(NETWARE)
# include <zend_config.h>
# define ZEND_PATHS_SEPARATOR ';'
#elif defined(__riscos__)
# include <zend_config.h>
# define ZEND_PATHS_SEPARATOR ';'
#else
# include <zend_config.h>
# define ZEND_PATHS_SEPARATOR ':'
#endif
后面去。
还要修改zend_config.w32.h,把#define vsnprintf _vsnprintf这行注释掉。
之后总算可以编译通过了。加载进来运行一下,终于看到了那句Congratulations。
以后再想想写个什么扩展好,然后进一步研究下。
欢迎进入PHP开发资源论坛讨论。·论php中interface是否为鸡肋
·关于include的返回值
·用PHP实现的事件机制
·PHP6的namespace[命名空间]
·算法:筛法找质数之PHP版
·php变量文件流
·用PHP检测字符串是否是utf8编码
·用php实现一个堆
·使用php的memcached客户端
·论php中interface是否为鸡肋
·关于include的返回值
·用PHP实现的事件机制
·PHP6的namespace[命名空间]
·算法:筛法找质数之PHP版
·php变量文件流
·用PHP检测字符串是否是utf8编码
·用php实现一个堆
·在我心中的Java和PHP
- · 3分钟快速了解 Delphi for PHP 特色 (中文), PDF档
- · 购买Delphi for PHP的五大理由, PDF档
- · Delphi for PHP 使用规格介绍, PDF档
- · Delphi for PHP 問答集 (From CodeGear)
- · Delphi for PHP 产品价格表




