(整理,备忘)
php扩展开发,创建一个新工程(名为test)。
测试环境:windows,visual c++ 2017,php7.2
先下载php源码和dev包,解压到php-src和php-dev目录。
一、运行命令:php c:/php-src/ext/ext_skel.php --ext test,创建test目录,里面一个.c文件一个.h文件
二、使用vs,新建,利用现有文件创建项目,选择test目录。创建dll项目。
三、配置
64位机器则选择x64平台,缺省是x86
常规:
->输出目录:c:/php/ext/
->配置类型:dll
C/C++:
附加包含目录,c:\php-src;c:\php-dev\include\main;c:\php-dev\include\zend;c:\php-dev\include\TSRM;
C/C++预处理器定义:ZEND_WIN32;PHP_WIN32;ZEND_DEBUG=0;COMPILE_DL_TEST(改为自己的扩展名);%(PreprocessorDefinitions)
链接器-附加依赖项:\php\dev\php7.lib;%(AdditionalDependencies)
四、活动项目选择x64和debug生成dll(发布时再生成release版本)
五、php.ini文件添加extension=C:\php\ext\test.dll 重启iis服务。
六、现在php可调用dll里的函数比如:test_test1()和test_test2("world!")
七、php -m 查看扩展是否已经加载。 (如果编译时选择ZEND_DEBUG=1则不能加载)
八、调试:设置断点,在vc中附加php进程。