如何将适用于 Windows 的 PHP 5.3 扩展编译为 DLL?

2023-11-22

我目前正在重写一个PHP最初编写的扩展PHP 4.2.2.我的问题是让构建/编译过程生成一个.dll而不是将扩展编译到PHP核。环境是windows server 2003。我使用的是Visual Studio 2008。

我使用 EXT_SKEL 脚本生成框架,并且可以成功地将扩展编译到 php 核心中。我正在尝试将其编译为.dll这样我就可以轻松地将其分发给我的客户。谁能指出我正确的方向来告诉我如何告诉PHP 5.3构建过程,我想将我的扩展编译为.dll而不是静态地进入PHP itself?

为了构建扩展的框架,我运行:

  1. php.exe ext_skel_win32.php --extname=myextension --proto=myprototypefile.dat
  2. 修改了 config.w32 以取消注释“ARG_ENABLE”行并启用默认值
  3. buildconf.bat
  4. cscript /nologo configure.js
  5. nmake

我确认我可以从 PHP 中运行扩展的方法,但它不会生成可分发的 .dll。相反,它将方法编译成 PHP 二进制文件。有人能指出我正确的方向吗?


Try

configure.js --enable-myextension=shared

编辑:也可能是

configure.js --with-myextension=shared
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将适用于 Windows 的 PHP 5.3 扩展编译为 DLL? 的相关文章

  • 在字符串中间添加一个字符

    可能有一个简单的解决方案可以解决这个问题 但会引起面部表情 我将时间存储为 4 个字符长的字符串 即 1300 我试图将该字符串显示为 13 00 我觉得必须有一个比我现在正在做的更优雅的解决方案 我目前有 startTime get fi
  • 阻止注销页面后的后退按钮

    我有 php 注销页面 当用户单击注销链接时 请参阅此页面并重定向到索引页面 但是当单击后退按钮时 我会看到带有用户数据的上一页 当然 当我刷新页面时 我看不到以前的页面和数据 我在单击注销并单击后退按钮后检查了其他代码 drupal 但我
  • 为什么验证不起作用并跳转到另一个页面?

    我写了一个customer display php来验证数据 到目前为止只有名字 但无论名字字段是否为空 网页都会跳转到customer search php并且没有更改数据库中的信息 为什么
  • 通过 facebook graph API 检索 facebook 用户的邮政编码

    我正在尝试使用 facebook graph API 检索用户的邮政编码 我正在使用以下代码 代码在php ini中 facebook new Facebook array appId gt APP ID secret gt APP SEC
  • 如何在类似 MVC 的页面中加载基于漂亮 URL 的类?

    我想请教一些关于如何解决这个问题的提示 我正在尝试构建自己的 MVC 网站 我了解了 URL 的基础知识 http example com blog cosplay cosplayer expo today 博客 gt 控制器cosplay
  • 在 Symfony 序列化中更改序列化属性名称

    我正在使用 Symfony 序列化器 效果很好 use Symfony Component Serializer Annotation Groups Groups default notification public function g
  • 使用先前的反向引用作为命名捕获组的名称

    有没有办法使用对先前捕获组的反向引用作为捕获组的名称命名捕获组 这可能不可能 如果不可能 那么这就是一个有效的答案 下列 data description some description preg match data matches p
  • 取消后调用 boost::asio 异步处理程序没有错误

    我的代码在单个线程中使用 boost asio 和 io service 来执行各种套接字操作 所有操作都是异步的 每个处理程序都依赖于boost system error code 特别boost asio error operation
  • Git 扩展 - 无法在 Windows 上推送到网络驱动器中的 git bare 存储库

    我正在 Windows 上学习 git 我已经安装了 Git 扩展 版本 2 47 3 并使用了它 我在我的 C 单元中创建了一个裸存储库 作为中央存储库 并在硬盘中的其他任何位置创建了个人存储库 我对硬盘中的这两个存储库进行提交 推送和拉
  • 如何以编程方式构建 Visual Studio 解决方案?

    我想通过传递解决方案文件路径 sln 文件 和构建模式 调试 发布 来编译解决方案 我不想调用像 devenv exe 或 msbuild exe 这样的命令行进程 相反 我想使用 API 并了解是否存在编译错误 是否可以 如果您认为您知道
  • C# - 方法必须有返回类型

    我在调用 C 中的方法时遇到问题 不断收到消息 方法 计算 必须有返回类型 using System Diagnostics namespace WindowsFormsApplication1 public partial class F
  • 在 Cygwin 软件包列表中找不到 Openssl

    这里说的是https github com joyent node wiki Building node js on Cygwin Windows https github com joyent node wiki Building nod
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中

随机推荐

  • 如果重试,则在 inappupdate android 时出现 java.lang.reflect.InitationTargetException

    重现此错误的步骤 单击更新按钮 它会打开更新应用程序对话框 因为它是AppUpdateType FLEXIBLE Click No thanks 再次尝试更新 应用程序崩溃并出现以下错误 我在通过下一行的 inappupdate 更新应用程
  • 是否应该定期调用 GC.Collect() ? [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我最近发布了一篇关于日志文件读取器因内存不足错误而失败的文章 gt 归档日志文件时内存不足错误 在我有机会尝试更简单的方法 将日志文件命名为带有日期以防止存档 之前 这显然意味着重写方法等
  • 如何使用 Watson Discovery 获得准确答案而不是整个文档?

    测试后发现服务 至少对我来说似乎没什么用 否则我可能会错过一些东西 当我查询时 它匹配文档并返回整个文档 如果我的文档很大 那么对于所有查询 它都会返回与查询文本匹配的整个文档 这是无用的 现在我是否必须为每个查询创建一个单独的文档 如果是
  • BaseFoo 不能使用不同的参数继承:> 和 >

    这是一个简化版本Java继承多级层次结构中的Fluent方法返回类型 给出以下代码 public enum X static interface BaseFoo
  • 尝试与 typedef 交朋友时出现“详细类型引用 typedef”错误

    假设我有以下代码 一个简单的 CRTP 类层次结构 我想 typedef 基类类型以节省自己的输入 在我的实际代码中 我多次使用基类类型 并且基类采用多个模板参数 并且我需要与基类成为朋友 因为我想保留实施私有 template lt cl
  • Enterprise Architect:当源代码(源 -> 模型)位于光盘中的不同绝对路径时,如何与源代码同步?

    我使用 逆向工程 工具在 Enterprise Architect 中创建了一个模型 将我的 Java 类导入到 EA 模型中 现在 我打算随着开发的进行使该模型与代码保持同步 问题是 当我尝试同步模型中的代码 源 gt 模型 时 只有当源
  • SDL_GL_SwapBuffers() 间歇性缓慢

    我正在开发一个 sdl opengl 游戏 以供娱乐 平均而言 我获得了不错的 fps 但运动确实很不稳定 因为 SDL GL SwapBuffers 会随机花费相当长的时间来处理 加载纹理并写入缓冲区后 有时会花费超过 100 毫秒 我删
  • 使用@javax.validation.Valid时如何以正确的方式抛出自定义异常?

    使用时如何以正确的方式抛出自定义异常 javax validation Valid 我在用着 Valid在控制器中 以及 AssertTrue验证请求正文字段 public ResponseEntity
  • Oracle REGEXP_LIKE 和字边界

    我在使用 REGEXP LIKE 匹配单词边界时遇到问题 正如预期的那样 以下查询返回一行 select 1 from dual where regexp like DOES TEST WORK HERE TEST 但我也想匹配单词边界 因
  • C# .NET 标签中的多种颜色

    我正在寻找一种在单个 C NET 标签中显示多种颜色的方法 例如 标签显示一系列 csv 分隔值 每个值的颜色取决于它们所属的存储桶 我不想使用多个标签 因为值是可变长度的 并且我不想使用动态布局 有对此的原生支持吗 NET 中没有本机控件
  • git 中神秘消失的分支

    以下是我执行的一些 git 操作 如您所见 我创建了一个新分支 修改了我的文件 然后提交了更改 在换回另一个分支后 希望合并 我刚刚工作的分支消失了 有谁知道如何从fixed merge branch恢复文件 我吓坏了 1 9 2 whis
  • 分叉连接优化

    我想要的是 我想致力于 fork join 算法的优化 我所说的优化只是指计算最佳线程数 或者如果您愿意的话 计算SEQUENTIAL THRESHOLD 参见下面的代码 PSEUDOCODE Result solve Problem pr
  • 拥有 MSI 安装包的主要优势是什么?

    我以为这会在网络上的某个地方 但我无法用谷歌搜索它 考虑到创建 MSI 包的复杂性 与 NSIS InnoSetup 等相比 什么是一个令人信服的理由去经历所有这些混乱 使用 MSVS 蹩脚的安装项目向导 学习一个全新的语言 生态系统只是为
  • json 键作为数字

    我有一个 JSON 传递给脚本 我不知道 JSON 键 因为它们是动态的 实际上 它们是数字 这就是我得到的 var countries 223 142 143 222 23 26 25 24 170 1 2 我尝试像这样访问数据 var
  • random() 函数内部 - 它是如何实现的?

    我们通常使用 random 函数在 C 中创建随机数 使用 void srand 无符号整数种子 可以改善结果 因为它会根据种子的值生成随机数 谁能告诉我随机函数是如何实际实现的 Here是 GNU C 库的 random 函数中使用的算法
  • Git - 包超出允许的最大大小

    我正在处理大量的二进制文件 最近对本地 git 存储库进行更改后 我尝试将更改推送回远程 结果收到以下错误 remote fatal pack exceeds maximum allowed size 不幸的是我无法使用所描述的策略here
  • Python:生成具有趋势的随机时间序列数据(例如周期性、指数衰减等)

    我正在尝试生成一些具有趋势的随机时间序列 例如周期性 例如销售 指数下降 例如帖子上的 Facebook 点赞数 指数增长 例如比特币价格 普遍增加 股票行情 等 我可以生成普遍增加 减少时间序列如下 import numpy as np
  • TextView 具有不同的字体和样式?

    是否可以在同一文本中包含不同大小 字体类型或样式的文本TextView 像这样的东西 myLogin logout 您可以使用以下方法执行此操作 textView setText Html fromHtml b myLogin b i lo
  • UICollectionView:必须使用非零布局参数进行初始化

    I added UICollectionView通过代码 现在 应用程序崩溃并显示消息 UICollectionView must be initialized with a non nil layout parameter 你有什么想法来
  • 如何将适用于 Windows 的 PHP 5.3 扩展编译为 DLL?

    我目前正在重写一个PHP最初编写的扩展PHP 4 2 2 我的问题是让构建 编译过程生成一个 dll而不是将扩展编译到PHP核 环境是windows server 2003 我使用的是Visual Studio 2008 我使用 EXT S