Windows 下开发PHP扩展DLL

转载 2016年08月28日 17:39:40

一、开始之前


1. 系统环境:Windows 7
2. 开发工具:Microsoft Visual Studio 2010
3. AP环境:即已经存在的Apache2.2x(VC9)、PHP5.3x(VC9)环境。
4. PHP源码:下载稳定版本源码,解压到如:C:Program Filesphpsrc 下。本示例用的是PHP5.3.8。
5. 配置源码:将源码中src/win32/build/config.w32.h.in文件拷贝一份到src/main/下,并重命名为:config.w32.h。

二、创建项目

启动Microsoft Visual Studio 2010(我用的是Professional版),新建一个项目,如:php_screw,类型选择如下图:

新建项目第一步

新建项目第二步

点击“finish”,即可看到在IDE右边多出了Solution Explorer和包含的默认项目文件结构。如下图:
默认项目文件结构

三、新建程序文件并设置项目属性

1. 在Source Files下创建一个cpp文件。

2. 选中项目名称,点右键,选择“Properties”打开属性设置对话框,进行属性设计,如下图:
打开属性对话框

设置Additional Include Directories
 
设置 Preprocessor Definitions
 
设置Additional Library Directories

设置 Additional Dependencies

四、编写示例代码并Build项目

1. 编写如下示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
 * 示例代码
 **/
#define PHP_COMPILER_ID  "VC9"
#include "php.h"
#include "ext/standard/info.h"
 
ZEND_FUNCTION(example);
PHP_MINFO_FUNCTION(example);
 
zend_function_entry use_functions[] = {
    ZEND_FE(example, NULL)
    {NULL, NULL, NULL}
};
 
zend_module_entry example_module_entry = {
    STANDARD_MODULE_HEADER,
    "PHP Extension Example",
    use_functions,
    NULL, NULL, NULL, NULL,
    PHP_MINFO(example),
    "1.0 beta",
    STANDARD_MODULE_PROPERTIES
};
 
ZEND_GET_MODULE(example);
 
ZEND_FUNCTION(example) {
     bool param;
 
     if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", ¶m) == FAILURE) {
         E_ERROR;
         return;
     }
 
     if(param) {
         php_printf("Example parm is true");
     } else {
         php_printf("Example parm is false");
     }
 
     return;
}
 
PHP_MINFO_FUNCTION(example) {
    php_info_print_table_start();
    php_info_print_table_header(2, "PHP Extension Example support", "enabled");
    php_info_print_table_row(2, "Version", "1.0 beta");
    php_info_print_table_end();
}

2. Build项目

保存好代码后,选择Build->Build Solution,一切正常的话,在下方图示的Output中可看到输出的信息,如图:

五、应用扩展

在项目的Debug文件夹下将生成的dll文件,拷贝到可正常工作的PHP ext文件夹下,并在php.ini上配置支持,重启Apache,在phpinfo中便可看到类似下图的信息:

编写PHP代码调用:

1
2
3
4
5
6
 
echo example(true);
//输出: Example parm is true
 
?>

完。


相关文章推荐

php调用dll经验小结

      最近做一个网站,需要频繁使用远程数据,数据接口已经做好。在做转换的时候遇到了性能上的问题:开始打算用php来实现转换,苦苦查了数天,都没有找到直接操作字节的方法。虽然可以使用 pack()...
  • hn3e21
  • hn3e21
  • 2010年12月14日 10:54
  • 13466

windows环境下php和Php扩展编译,扩展dll文件编译

工作过程中需要编译php扩展的dll格式文件 , 经过1天的折腾,终于编译出来了,下面以编译php5.3.28 下runkit扩展为例 , 官方的windows环境下php编译过程参考下面这两篇文章:...
  • clh604
  • clh604
  • 2015年05月08日 10:07
  • 6118

PHP调用DLL和引用其它的.php文件示例

一、调用第三方的DLL 例: 代码如下: $b=new COM("Comtest.Class2"); $t1=126; $t2=456; $r=$b->add($t1,$t2); ...
  • xjzdr
  • xjzdr
  • 2015年07月08日 16:26
  • 4642

windows下用c/c++开发php扩展

一:所需工具:cygwin ,它是一个在windows平台上运行的类unix模拟环境 php源码(压缩包) php二进制文件,也就是安装在windows上的php vs2008 或者更高(vs2...

Windows中搭建PHP扩展开发环境

一、提前准备 下载并安装VS2008 下载PHP5.4.5程序: NTS下载 TS下载 其中php二进制包分为VC6、VC8、VC9及TS和NTS版本。 VC6、VC8、VC9分别对应...

PHP扩展开发—windows开发环境搭建

环境及资源下载 操作系统:windows7,64位操作系统 IDE:Visual stdio 2013 PHP源码:php-5.5.38-src.zip PHP-SDK:http://windows....

Windows下php扩展库C++开发

linux下的开发php的C++扩展库的文章不少,今天具体讲一下Windows下扩展库C++的开发. 一、开始之前 1. 系统环境:Windows 7 2. 开发工具:VS 2010 3. A...

Windows下php扩展开发c++动态库

PHP扩展开发,从零了解到初步完成一个小项目,经过三天的仔细研究,现整理如下 一、需求介绍 PHP扩展开发,调用自己之前的c++动态库,完成功能 二、项目之前 系统:windows xp  开发工具:...

在Windows下用C扩展PHP(打包成dll)的方法

1、目的 为了在php中使用C语言的扩展,本文介绍一种将C扩展打包成dll文件,提供给php调用的方法 2、需要安装的软件 (1)wamp server:其中包含php,本文中php版本为5.5....

在Windows下用C扩展PHP(打包成dll)的方法

http://blog.csdn.net/maverick1990/article/details/46519045 1、目的 为了在PHP中使用C语言的扩展,本文介绍在windows...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows 下开发PHP扩展DLL
举报原因:
原因补充:

(最多只允许输入30个字)