所以就是这种情况,我正在尝试为我的客户开发一个 php 扩展。我使用 SWIG 生成包装器代码,我的主要代码是 c++。成功创建扩展后,我将其加载到 /ext 并重新启动 Web 服务器以对其进行测试。我收到错误消息,提到扩展程序是使用 API 20090626 构建的,但 PHP 服务器(在我的情况下为 XAMPP)API 是 20100525。我完全理解错误,所以我在 php 源中打开 Zend_modules.h 头文件并将 API 编号从 20090626 更改为 20100525,然后我使用更新的 zend_modules.h 头文件构建我的扩展,现在我没有问题了。
问题是,我的客户肯定在使用具有不同 API 的不同 php 服务器,我打算给他们一个 dll(我的扩展),它可以轻松加载而没有任何困难。但现在我应该给他们一个 VS2010 解决方案,动态加载我的主要代码 (dll)。我的意思是每个用户应该首先从他自己的服务器检查 PHP API 并更改 Zend_modules.h 头文件,构建解决方案,然后使用扩展。我需要一个解决方案,使我的扩展完全独立于该 API 编号。
我真的很感激任何想法。