Почему мое приложение wxPerl для Windows не запускается?

Я разработал приложение с Strawberry Perl 5.8.9.4, используя wxPerl. Приложение скомпилировано с использованием:

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"`.

Я пришел к тому, чтобы развернуть его на ПК клиентов. Для этого я использую установку, созданную с помощью 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, предоставленными в папках приложения. Я также удалил все DLL, которые были установлены моей установкой, из папки system32.

Моя машина для разработки работает под управлением Windows XP Prof. SP3. Система клиента работает под управлением Windows XP Home SP3.

Любые мысли или указатели будут высоко оценены.


person Htbaa    schedule 09.02.2010    source источник


Ответы (1)


Я нашел свою проблему. На самом деле это ошибка Strawberry Perl, о которой уже сообщалось здесь. Я решил скомпилировать его без флагов --gui, --compress и криптофильтра. Поскольку я пропустил --gui, это вернуло бы мне сообщение об ошибке на консоль. В ошибке упоминалось, что PAR::Heavy не удалось найти. Согласно сообщению, на которое я ссылался ранее, это было из-за пути, на котором находится PAR::Heavy. Итак, я добавил --lib=C:/strawberry/perl/vendor/lib в wxpar, перекомпилировал и все снова работает как надо. Пока эта ошибка не будет исправлена, это должно сработать.

person Htbaa    schedule 09.02.2010