vc c php扩展,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)

0818b9ca8b590ca3270a3433284dd417.png

一、       环境配置

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打开工程文件

0818b9ca8b590ca3270a3433284dd417.png

一、       添加代码:

a)       打开php_hello.h

PHP_FUNCTION(confirm_sayhello_compiled);

//后面添加需添加的函数

如下:

0818b9ca8b590ca3270a3433284dd417.png

a)       打开 php_hello.c添加实现代码

0818b9ca8b590ca3270a3433284dd417.png

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 目录下,内容如下

0818b9ca8b590ca3270a3433284dd417.png

执行

Php –f test.php

这样你就可以在页面上看见

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

上面是我自己写的加载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添加实现代码

0818b9ca8b590ca3270a3433284dd417.png

中有一个错误:len=sprintf(&strg,0,"%s say: Hello",arg);

应该是:len=spprintf(&strg,0,"%s say:Hello",arg);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值