我们的 perl 程序在客户的 Windows 机器上启动时崩溃。进一步的测试表明,使用我们提供的 perl 发行版,一个简单的“hello world”脚本可以工作,但如果它包含以下行就会中断:
use Win32::TieRegistry(Delimiter=>'\\');
它因访问零指针而因访问冲突而崩溃。堆栈指向registry.dll。
知道如何解决此问题吗?我在谷歌搜索中没有找到任何关于它的信息,也无法在我的环境中重新创建它。
我们的 perl 程序在客户的 Windows 机器上启动时崩溃。进一步的测试表明,使用我们提供的 perl 发行版,一个简单的“hello world”脚本可以工作,但如果它包含以下行就会中断:
use Win32::TieRegistry(Delimiter=>'\\');
它因访问零指针而因访问冲突而崩溃。堆栈指向registry.dll。
知道如何解决此问题吗?我在谷歌搜索中没有找到任何关于它的信息,也无法在我的环境中重新创建它。
你能告诉我你使用的是什么版本的perl吗?它是 Activestate 还是草莓 Perl?
访问冲突通常是某些非 perl 代码中的编程错误。看起来可能是包含错误的 registry.dll。为了追踪它,您可能需要源代码和/或调试器。我假设 registry.dll 是作为 perl 的一部分出现的 dll(即 Win32::TieRegistry 或 Win32::TieRegistry 使用的 Win32API::Registry 的 XS/C 代码部分)。为了验证这个假设,您能否提供 registry.dll 的完整路径?我认为它会在访问冲突对话框中显示它。