【问题标题】:Why doesn't my wxPerl application for Windows start?为什么我的 Windows 版 wxPerl 应用程序无法启动?
【发布时间】:2011-01-14 17:29:27
【问题描述】:

我使用wxPerl 开发了一个带有Strawberry Perl 5.8.9.4 的应用程序。该应用程序使用以下代码编译:

wxpar -f Crypto -F Crypto -M Filter::Crypto::Decrypt --compress=9 --gui --icon=icon.ico --lib=./lib --module=App::Order - -module=Wx --module=App::GUI::Main --module=App::GUI::Frame --module=App::GUI::Forms::Settings --module=App::GUI:: Forms::Settings::Signature --module=App::Task::StripAndMail --module=App::Mode::Terminal --module=App::Mode::GUI --output="bin\PDF Mailer. exe" "PDF Mailer.pl"`.

我已经打算将它部署到客户的 PC 上。为此,我使用使用 InnoSetup 创建的设置,它将所有必需的 DLL 复制到 system32 文件夹。我已经在我自己和另一个没有安装 Strawberry Perl 的系统上对此进行了测试。这个其他系统让我弄清楚我需要包含哪些 DLL,它们是:

  • libeay32.dll
  • mingwm10.dll
  • wxbase28u_gcc_wxp_binary_10_0.dll
  • wxmsw28u_adv_gcc_wxp_binary_10_0.dll
  • wxmsw28u_core_gcc_wxp_binary_10_0.dll

但是,我的客户安装了设置,并且在启动应用程序时,光标只是更改为加载指示器,然后返回正常。应用程序似乎没有正确启动,也没有报告丢失的 DLL。

mingwm10.dll 丢失之前我也遇到过同样的问题。所以我认为这是一个丢失的 DLL,但我不知道在哪里寻找。

我已将系统的 PATH 修改为仅包含 system32 文件夹,以确保应用程序以应用程序文件夹中提供的 DLL 启动。我还从 system32 文件夹中删除了我的安装程序安装的所有 DLL。

我的开发机器运行的是 Windows XP Prof. SP3。客户端系统运行Windows XP Home SP3。

任何想法或指示将不胜感激。

【问题讨论】:

    标签: windows perl dll wxwidgets wxperl


    【解决方案1】:

    我发现了我的问题。这实际上是 Strawberry Perl 的一个错误,已经报告了here。我决定在没有--gui--compress 标志和加密过滤器的情况下编译它。因为我遗漏了--gui,所以它会向控制台返回一条错误消息。错误提到找不到PAR::Heavy。根据我之前链接的消息,这是因为 PAR::Heavy 所在的路径。所以我将--lib=C:/strawberry/perl/vendor/lib 添加到wxpar,重新编译,一切都像预期的那样工作。在修复此错误之前,这应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 2023-03-24
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      相关资源
      最近更新 更多