PHP-sdk\
PHPdev\
--vc6
--vc8
--vc9
--vc11
@H_
403_0@进入扩展目录,
生成扩展
文件夹
@H_
403_0@
PHP-sdk\
PHPdev\vc11\x86\
PHP-5.5.20\ext
#输入
PHP ext_skel_win32.
PHP --extname=扩展
名称
PHP ext_skel_win32.
PHP --extname=widuuweb
这时候我们在C:\
PHP-sdk\
PHPdev\vc11\x86\
PHP-5.5.20\ext就看到了自己的目录widuuweb,打开widuuweb\
PHP_widuuweb.h,在
#
PHP_MINFO_FUNCTION(widuuweb);下一行写入自己的
函数,譬如我定义的是widuu()
函数
PHP_FUNCTION(widuu);
打开
PHP_widuuweb.c编写
函数,在
PHP_FUNCTION(confirm_widuuweb_compiled)下
@H_
403_0@
PHP_FUNCTION(widuu){
char *arg_string = NULL;
int arg_len,str_len;
char *string;
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,"s",&arg_string,&arg_len) == FAILURE){
return;
}
str_len = spprintf(&string,"your first extension %.78s is ok",arg_string);
RETURN_STRINGL(string,str_len,0);
}
@H_
403_0@然后找到
PHP_FE(confirm_widuuweb_compiled,NULL),在下边
注册你的
函数
@H_
403_0@
PHP_FE(confirm_widuuweb_compiled,NULL) /* For testing,remove later. */
PHP_FE(widuu,NULL)
PHP_FE_END /* Must be the last line in widuuweb_functions[] */
};
@H_
403_0@
修改C:\
PHP-sdk\
PHPdev\vc11\x86\
PHP-5.5.20\ext\widuuweb\config.w32,去掉
// ARG_ENABLE("widuuweb","enable widuuweb support","no");
前边的注释,vs命令行,输入cd .. 到
PHP-5.5.20目录中,输入下面的命令
buildconf --force
#查看扩展
configure --help
如果,有
错误,大家可以打开,目录下configure.js查看,我这个出现了
错误,是configure.js的4791行,
ARG_ENABLE("widuuweb","no"); */
多了一个*/的注释,去掉就可以了,然后再输入
configure --help
就看到了,有一行
--enable-widuuweb enable widuuweb support
然后配置
configure --disable-all --enable-cli --enable-widuuweb=shared
PHP动态扩展
@H_
403_0@其中--enable-widuuweb=shared动态扩展,正好与静态扩展相对。
然后输入nmake,完成后,我们在C:\
PHP-sdk\
PHPdev\vc11\x86\
PHP-5.5.20\Release_TS目录下就发现了
PHP_widuuweb.dll
文件,可以放到环境中测试了。
如果你本地没有安装
PHP环境,而是跟我一样只是编译了
PHP,如果测试,我建议静态编译看
效果
configure --disable-all --enable-cli --enable-widuuweb=static
nmake
然后,你可以再Release_TS目录下,输入
PHP -r "echo widuu('widuu');" //
输出"your first extension widuu is ok"
ok,就说到这里,以后再慢慢来讲,有什么不懂的大家可以留言,基础的ZEND_API,大家可以去walu.cc查看