在Windows上开发PHP扩展模块
环境: window + php + apache + vc6 + cygwin
下载:php二进制文件: php-5.3.10-Win32-VC9-x86
php源码包:php-5.3.10
操作第一步:
PHP源代码生成 main/config.w32.h 详见:http://www.cnblogs.com/shijingjing07/p/5420902.html
操作第二步:
把PHP二进制根目录加入到环境变量下。在cmd命令行,进入PHP源码包中ext文件下。
执行php ext_skel_win32.php --extname=test命令生成扩展骨架。
把PHP二进制包中dev目录php5ts.lib文件复制到你扩展目录test中。

命令执行后,生成如下图示的文件:

操作第三步:
编辑php_test.h内容,找到:

在下面编写:
PHP_FUNCTION(hello); //添加方法
编辑test.c内容,找到:

在里面添加你的要的添加的方法:
PHP_FE(hello,NULL) //最好的跟上面写的一样。
变为:

再找到:

在下面实现你的方法:

简单些。你我需要更深入php内核才能写好的php扩展。
操作第四步:
接下来就是对扩展文件进行编译。
进入扩展的目录,执行以下命令。
msdev test.dsp /MAKE "test - Win32 Release_TS" //命令

如果没有错误,在D:/PHP目录中会产生一个Release_TS目录,php_test.dll就在其中。
操作第五步:
把php_test.dll复制到二进制PHP中的etc文件中.
修改php.ini文件,添加extension=php_test.dll文件。
重启服务。
<?php
echo hello();//test
?>
在Windows上开发PHP扩展模块的更多相关文章
- 开始在Windows上开发Android
介绍 鉴于您正在阅读这篇文章,您很可能已经知道android是什么了.可能.在科幻小说和电影中,机器人本质上是具有拟人化特征的机器人.还记得<星球大战>里的C-3PO吗?那<星际迷航 ...
- Erlang在Windows上开发环境搭建全过程讲解目录
我会按照下面的列表来一步一步讲解,在windows来开发Erlang所用到的一些工具,和知识.我会不停的添加和修正. Erlang运行时环境 Erlang开发工具选择 Rebar来构建,编译,测试,发 ...
- 在WINDOWS上开发IOS应用的方法
1,虚拟机上安装MAC系统,里面装XCODE 2,WINDOWS上安装code blocks,这个IDE可以直接在WIN上编译XCODE工程: 最新的IOS在windows环境下编译环境搭建记录
- 如何在Windows上搭建Android开发环境
Android开发越来越火,许多小伙伴们纷纷学习Android开发,学习Android开发首要任务是搭建Android开发环境,由于大家 主要实在Windows 上开发Android,下面就详细给大家 ...
- 在Windows上运行Linux
在Windows上运行Linux 之前了解过一些适用于linux的Windows子系统,最近又听人提起,于是在自己的Windows 10专业版上安装了一个Ubuntu.运行起来还真方便,以后在wind ...
- 在 Windows 上可以用 Docker 吗?
作者:陈计节 个人博客:https://blog.jijiechen.com/post/docker-on-windows/ Docker,或者准确一点说,容器技术,在近几年里几乎成为了应用分发和集群 ...
- 关于WSL(Windows上的Linux子系统)的简单介绍及安装
WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++),在wsl环境下我们可以运行一些Linux程 ...
- Windows上安装Mac OS
在windows上开发ios程序,是一件比較痛苦的事情.由于: 开发android程序,使用eclipse.eclipse有windows版同一时候也有mac版,所以mac上开发android程序和w ...
- WSL(Windows上的Linux子系统)
WSL(Windows上的Linux子系统) WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++ ...
随机推荐
- libcurl库进行http通讯-开篇
从今天開始介绍一些经常使用的库. 首先就来写一写关于libcurl库. libcurl主要功能就是用不同的协议连接和沟通不同的server~也就是相当封装了的sockPHP 支持libcurl(同意你 ...
- fiddler设置显示区域参数
oSession["ui-color"] = "red"; 设置字体颜色,颜色名称oSession["ui-italic"] = " ...
- 图片预加载插件 preLoad.js
1.preLoad.js插件 /*! * preLoad.js v1.0 * (c) 2017 Meng Fangui * Released under the MIT License. */ (fu ...
- grub安装的 三种安装方式
1. 引言 grub是什么?最常态的理解,grub是一个bootloader或者是一个bootmanager,通过grub可以引导种类丰富的系统,如linux.freebsd.windows等.但一旦 ...
- topas解析(AIX)
topas解析 topas 的显示信息和解析 (1) topas monitor for host:localhost topas监控的主机名称localhost tue Aug 14 14:1 ...
- mysql中内存的使用与分配
mysql的内存分配,是调优的重中之重,所以必须搞清楚内存是怎么分配的 mysql> show global variables like '%buffer%'; +-------------- ...
- 【mysql】Innodb三大特性之double write
1.doublewrite buffer(mysql官方的介绍) InnoDB uses a novel file flush technique called doublewrite. Before ...
- Nginx配置error_page 404错误页面
问题由来 昨天一网友在segmentfault.com上提问,无法做404重定向 打开对方的网站随便输入一个错误的地址发现给出了404代码,但是页面完全空白,并没有显示404页面的设定内容 当时就明白 ...
- BIND9源码分析之acl 的实现
BIND配置中一大堆一大堆的acl,什么allow-query, allow-recursion, allow-update还有view的match-clients等等等等. acl中的主要存储的就是 ...
- 【LeetCode】130. Surrounded Regions (2 solutions)
Surrounded Regions Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A ...