English Sentence Loading...
英语句子加载中...
我的第一个PHP扩展编译成功
作者: 火车头 日期: 2008-03-06 16:32
看了一天的c代码和别人的文章,拷拷抄抄,终于了解了PHP扩展的编写和编译方法,
开始选择VC6.0,后来发现还是VS.net顺手,改到.net环境下来编译了。。下面就编译方法和代码 做简单说明
附件1,源代码包:
dll源代码包.rar (2.26 KB , 下载:137次)
附件2,编译好的dll扩展:
LocoyPHPFirst.dll.rar (5.53 KB , 下载:97次)
使用方法:该扩展使用于在windows的PHP5.0以上环境中安装,将 LocoyPHPFirst.dll复制到你的PHP目录中的ext目录中,并在对应的php.ini文件增加一行:extension=LocoyPHPFirst.dll
重新启动服务器。如果没有报错,表明扩展安装成功
以下为测试代码
先看代码:
成功运行应该可以在浏览器中打印出一行字:

代码:
头文件: LocoyPHPFirst.h
代码文件:
编译属性设置请下载源码包中对照设置
特别注意:
a、以c代码方式编译,即加上编译参数:/Tc,
b、预处理器定义为:_WINDOWS;_USRDLL;LocoyPHPFirst_EXPORTS;ZTS=1;COMPILE_DL_LocoyPHPFirst;_USE_32BIT_TIME_T;NDEBUG;WIN32;PHP_WIN32;ZEND_WIN32;ZEND_DEBUG=0;HAVE_LocoyPHPFirst=1
c、我的PHP源码包路径:C:\php\bindlib_w32;C:\php\win32build\lib;C:\php\PHP5.2.5;C:\php\PHP5.2.5\main;C:\php\PHP5.2.5\win32;C:\php\PHP5.2.5\TSRM;C:\php\PHP5.2.5\Zend;C:\php\win32build\include
(即附加包含路径)
d、使用 多线程 DLL (/MD) 模式
e、附加依赖项内加上:zlib.lib php5ts.lib
开始选择VC6.0,后来发现还是VS.net顺手,改到.net环境下来编译了。。下面就编译方法和代码 做简单说明
附件1,源代码包:
dll源代码包.rar (2.26 KB , 下载:137次)附件2,编译好的dll扩展:
LocoyPHPFirst.dll.rar (5.53 KB , 下载:97次)使用方法:该扩展使用于在windows的PHP5.0以上环境中安装,将 LocoyPHPFirst.dll复制到你的PHP目录中的ext目录中,并在对应的php.ini文件增加一行:extension=LocoyPHPFirst.dll
重新启动服务器。如果没有报错,表明扩展安装成功
以下为测试代码
先看代码:
下载: 1.php
- <?php
- echo helloLocoyPHPFirst(); //这个函数就是我在扩展中定义的
- ?>
成功运行应该可以在浏览器中打印出一行字:

代码:
头文件: LocoyPHPFirst.h
下载: LocoyPHPFirst.h
- #if HAVE_LocoyPHPFirst
- extern zend_module_entry LocoyPHPFirst_module_entry;
- #define LocoyPHPFirst_module_ptr &LocoyPHPFirst_module_entry
- PHP_FUNCTION(helloLocoyPHPFirst); //
- PHP_MINFO_FUNCTION(LocoyPHPFirst); //
- #endif
代码文件:
下载: LocoyPHPFirst.c
- #include "php.h"
- #include "LocoyPHPFirst.h"
- #if HAVE_LocoyPHPFirst
- #if COMPILE_DL_LocoyPHPFirst
- ZEND_GET_MODULE(LocoyPHPFirst)
- #endif
- function_entry LocoyPHPFirst_functions[] = {
- PHP_FE(helloLocoyPHPFirst, NULL)
- {NULL, NULL, NULL}
- };
- zend_module_entry LocoyPHPFirst_module_entry = {
- STANDARD_MODULE_HEADER,
- "LocoyPHPFirst", LocoyPHPFirst_functions, NULL, NULL, NULL, NULL, PHP_MINFO(LocoyPHPFirst), NO_VERSION_YET, STANDARD_MODULE_PROPERTIES
- };
- PHP_MINFO_FUNCTION(LocoyPHPFirst)
- {
- php_info_print_table_start();
- php_info_print_table_row(2, "LocoyPHPFirst Extension", "Enable");
- php_info_print_table_end();
- }
- PHP_FUNCTION(helloLocoyPHPFirst)
- {
- zend_printf("哈哈,如果看到这句话,表明我的第一个PHP扩展编译成功了,努力,继续");
- }
- #endif
编译属性设置请下载源码包中对照设置
特别注意:
a、以c代码方式编译,即加上编译参数:/Tc,
b、预处理器定义为:_WINDOWS;_USRDLL;LocoyPHPFirst_EXPORTS;ZTS=1;COMPILE_DL_LocoyPHPFirst;_USE_32BIT_TIME_T;NDEBUG;WIN32;PHP_WIN32;ZEND_WIN32;ZEND_DEBUG=0;HAVE_LocoyPHPFirst=1
c、我的PHP源码包路径:C:\php\bindlib_w32;C:\php\win32build\lib;C:\php\PHP5.2.5;C:\php\PHP5.2.5\main;C:\php\PHP5.2.5\win32;C:\php\PHP5.2.5\TSRM;C:\php\PHP5.2.5\Zend;C:\php\win32build\include
(即附加包含路径)
d、使用 多线程 DLL (/MD) 模式
e、附加依赖项内加上:zlib.lib php5ts.lib
评论: 0 |
引用: 0 |
阅读: 1216
加入网摘
发表评论
订阅
上一篇
返回
下一篇






