VC6.0下PHP扩展开发详细教程
PHP开发在windows下建议使用 vc6.0,以下是经过本人实践的确定出来的工具和步骤,注意需要严格按配置才能正常运行。
一、 开发环境:
a) Cygwin
b) VC6.0
c) Wamp
d) php-5.2.17-Win32-VC6-x86
e) php源码(php-5.2.17-src.zip)
一、 环境配置
a) 安装wamp,安装完后,把php-5.2.17-Win32-VC6-x86.zip解压,把文件覆盖/wamp/php目录
b) 用/wamp/php目录下的文件覆盖/wamp/Apatch2/bin目录下的文件
c) 添加环境变量php工作目录,vc6 IDE目录及bin目录,我的环境如下:
Path=D:\wamp\php;D:\Program Files\Microsoft VisualStudio\VC98\Bin;
D:\Program Files\Microsoft VisualStudio\Common\MSDev98\Bin
测试php 是否安装正确
输入php –v 查看PHP 版本。
二、 源码环境
a) 解压php-5.2.17-src.zip,将其放在你想放的位置//D:\php-5.2.17
b) 运行主目录下buildconf.bat / configure.bat
c) 修改ext/ext_skel_win32.php
$cygwin_path = 'D:\ProgramFiles\cygwin\bin'; //这里是你cygwin/bin的安装目录
三、 工程生成:
a) 进入命令行模块(运行CMD),进入源码目录// D:\php-5.2.17\ext
b) 输入 php ext_skel_win32.php --extname = shello//后面是工程名
c) 成功后会在D:\php-5.2.17\ext目录下成hello 工程,然后用vc6打开工程文件
一、 添加代码:
a) 打开php_hello.h
在
PHP_FUNCTION(confirm_sayhello_compiled);
//后面添加需添加的函数
如下:
a) 打开 php_hello.c添加实现代码
a) 打开 php_hello.c添加导出
如下所示,红色部分是我添加的
zend_function_entry sayhello_functions[] = {
PHP_FE(confirm_sayhello_compiled, NULL) /*For testing, remove later. */
PHP_FE(hello,NULL)
{NULL,NULL, NULL} /* Must be the last line insayhello_functions[] */
};
一、 编译.链接:
在项目链接库模块中将改成Win32Release_TS ,编译后缺少php5ts.lib,这个文件在wamp\php\dev目录下可以找到;将其添加到程序目录下,或者设置环境变量。
生成文件在可以放到wamp\php\ext\目录下
二、 注册插件:
修改wamp\php\php.ini
在
[PHP]
添加,最后放在 extension= 最后
extension=php_hello.dll
三、 测试代码:
可以先采用命令行方式
Php –r “ echo hello (‘Join); “.
注意”hello” 与 “(“之间有空格)
可以建立一个php文件如test.php放在wamp/www 目录下,内容如下
<?php echo hello(“Join”);?>
执行
Php –f test.php
这样你就可以在页面上看见
上面是我自己写的加载DLL的部分程序,同一般加载dll一样,希望能帮助到你。
一、 部署
注意扩展的所有依赖库,必须放在windows安装目录或wamp\Apache2\bin下
_________________________________________________________________________________________________________________________
需要注意的是:
如果php版本不是5.2.17.比如,我用的版本是5.3.3
d) php-5.3.3-Win32-VC6-x86
e) php源码(php-5.3.3-src.zip)
在编译时会提醒缺少config.win32.h,需要将php-5.2.17-src里面的main文件夹里的此文件copy到php-3.3.-src的main文件夹
文中
a) 打开 php_hello.c添加实现代码
中有一个错误:len=sprintf(&strg,0,"%s say: Hello",arg);
应该是:len=spprintf(&strg,0,"%s say:Hello",arg);
0 0
- 上一篇关于PHP自定义扩展加载的问题
- 下一篇php启动外部某个可执行的exe文件,exe文件为界面执行文件。
PHP开发在windows下建议使用 vc6.0,以下是经过本人实践的确定出来的工具和步骤,注意需要严格按配置才能正常运行。
一、 开发环境:
a) Cygwin
b) VC6.0
c) Wamp
d) php-5.2.17-Win32-VC6-x86
e) php源码(php-5.2.17-src.zip)
一、 环境配置
a) 安装wamp,安装完后,把php-5.2.17-Win32-VC6-x86.zip解压,把文件覆盖/wamp/php目录
b) 用/wamp/php目录下的文件覆盖/wamp/Apatch2/bin目录下的文件
c) 添加环境变量php工作目录,vc6 IDE目录及bin目录,我的环境如下:
Path=D:\wamp\php;D:\Program Files\Microsoft VisualStudio\VC98\Bin;
D:\Program Files\Microsoft VisualStudio\Common\MSDev98\Bin
测试php 是否安装正确
输入php –v 查看PHP 版本。
二、 源码环境
a) 解压php-5.2.17-src.zip,将其放在你想放的位置//D:\php-5.2.17
b) 运行主目录下buildconf.bat / configure.bat
c) 修改ext/ext_skel_win32.php
$cygwin_path = 'D:\ProgramFiles\cygwin\bin'; //这里是你cygwin/bin的安装目录
三、 工程生成:
a) 进入命令行模块(运行CMD),进入源码目录// D:\php-5.2.17\ext
b) 输入 php ext_skel_win32.php --extname = shello//后面是工程名
c) 成功后会在D:\php-5.2.17\ext目录下成hello 工程,然后用vc6打开工程文件
一、 添加代码:
a) 打开php_hello.h
在
PHP_FUNCTION(confirm_sayhello_compiled);
//后面添加需添加的函数
如下:
a) 打开 php_hello.c添加实现代码
a) 打开 php_hello.c添加导出
如下所示,红色部分是我添加的
zend_function_entry sayhello_functions[] = {
PHP_FE(confirm_sayhello_compiled, NULL) /*For testing, remove later. */
PHP_FE(hello,NULL)
{NULL,NULL, NULL} /* Must be the last line insayhello_functions[] */
};
一、 编译.链接:
在项目链接库模块中将改成Win32Release_TS ,编译后缺少php5ts.lib,这个文件在wamp\php\dev目录下可以找到;将其添加到程序目录下,或者设置环境变量。
生成文件在可以放到wamp\php\ext\目录下
二、 注册插件:
修改wamp\php\php.ini
在
[PHP]
添加,最后放在 extension= 最后
extension=php_hello.dll
三、 测试代码:
可以先采用命令行方式
Php –r “ echo hello (‘Join); “.
注意”hello” 与 “(“之间有空格)
可以建立一个php文件如test.php放在wamp/www 目录下,内容如下
<?php echo hello(“Join”);?>
执行
Php –f test.php
这样你就可以在页面上看见
上面是我自己写的加载DLL的部分程序,同一般加载dll一样,希望能帮助到你。
一、 部署
注意扩展的所有依赖库,必须放在windows安装目录或wamp\Apache2\bin下
_________________________________________________________________________________________________________________________
需要注意的是:
如果php版本不是5.2.17.比如,我用的版本是5.3.3
d) php-5.3.3-Win32-VC6-x86
e) php源码(php-5.3.3-src.zip)
在编译时会提醒缺少config.win32.h,需要将php-5.2.17-src里面的main文件夹里的此文件copy到php-3.3.-src的main文件夹
文中
a) 打开 php_hello.c添加实现代码
中有一个错误:len=sprintf(&strg,0,"%s say: Hello",arg);
应该是:len=spprintf(&strg,0,"%s say:Hello",arg);