Blog / 阅读

在Windows下写PHP的ext DLL扩展例子

by admin on 2014-11-05 21:43:22 in ,



上一篇写了环境搭建http://www.526net.com/blog/biancheng/528.html,这里搞个例子吧。 详细请看以下。

1. 修改php_myhello.h 

扩展的新函数: 在PHP_FUNCTION(confirm_myhello_compiled); 行后添加一行 
C代码  收藏代码
PHP_FUNCTION(confirm_myhello_compiled);  
PHP_FUNCTION(myhello);  // 新增的行  




2. 修改myhello.c 
在PHP_FUNCTION(confirm_myhello_compiled) 后添加我们的新函数 
C代码  收藏代码
PHP_FUNCTION(myhello){  
    php_printf(”Hello C extension”);  
}  


在数组zend_function_entry myhello_functions[]增加一行 
C代码  收藏代码
zend_function_entry myhello_functions[] = {  
    PHP_FE(confirm_myhello_compiled,    NULL)        /* For testing, remove later. */  
    PHP_FE(myhello, NULL) // 新增的行  
    {NULL, NULL, NULL}    /* Must be the last line in myhello_functions[] */  
};  




V. 构建DLL文件 
用vc6打开我们的工程,就是myhello.dsp 
1. 修改编译方式为release: 选择Build->Set Active Configuration设置默认编译方式为Release, 否则会提示缺少php5ts_debug.lib ,其实就是php5ts.lib。 
2. 按F5编译。会在ext上级的Release_TS目录下生成php_myhello.dll 


提示:如果愿意使用命令行编译也是可以的,命令如下: 
引用


msdev myhello\myhello.dsp /MAKE "myhello - Win32 Release_TS" 




VI. 集成dll到php中。 
1. 把我们生成的 php_myhello.dll放到二进制php环境的ext目录下. 
2. 然后修改php.ini, 添加 extension=php_myhello.dll 重启apahce。 
3. 新建c_test.php 内容为 
Java代码  收藏代码
<?php myhello(); ?>   


在浏览器里打开会看到页面: 
引用
hello C extension. 


写评论

相关文章

上一篇:在Windows中搭建PHP ext DLL扩展VS2008开发环境

下一篇:thinkphp 3.2 写出配置到文件

评论

写评论

* 必填.

分享

栏目

赞助商


热门文章

Tag 云