Архив метки: dll

Rundll32.exe для windows — как пользоваться

Здесь соберу параметры для запуска программы rundll32.exe. Сама по себе программа присутствует во всех версиях Windows. Приведённые команды проверял на Windows 7. Использовать её можно либо через пуск — выполнить, либо через командную строку, либо вписав её в создаваемый ярлык.

Сначала то, что может быть полезным:

rundll32 shell32.dll, ShellAboutA — вывод окна с версией windows, типа «О программе»

rundll32.exe netplwiz.dll, UsersRunDll — окно «Учётные записи пользователей»

rundll32.exe SHELL32.dll, Options_RunDLL 0 — окно настройки вида папок

rundll32.exe shell32.dll, Control_RunDLL desk.cpl desk, @Appearance — окно «Параметры значков рабочего стола», например добавить мой компьютер на рабочий стол

rundll32.exe SHELL32.dll, Options_RunDLL 1 — Свойства панели задач и меню Пуск

rundll32.exe KEYMGR.dll, KRShowKeyMgr — окно «Сохранение имён пользователей и паролей»

А теперь то, что может никогда не пригодиться, но тоже есть:

rundll32.exe WINSPOOL.DRV, ConnectToPrinterDlg или rundll32.exe PRINTUI.dll, ConnectToPrinterDlg — окно подключения к сетевому принтеру

rundll32.exe  joy.cpl, ShowJoyCPL — вызов окна настройки джойстиков

rundll32.exe TAPI32.dll, internalConfig — диалог «Телефон и модем»

rundll32.exe  inetcpl.cpl, LaunchInternetControlPanel — запуск окна настройки Internet Explorer

rundll32.exe   inetcpl.cpl, DisplayPopupWindowManagementDialog — окно «параметры блокирования всплывающих окон» Internet Explorer

Продолжение следует…

Qt 5: подготовка программы для windows к запуску на других компьютерах

Расскажу, как запустить программу, написанную на C++/Qt для windows, на другом компьютере, где библиотеки Qt 5 не установлены. Вот мы, допустим, установили Qt Creator, создали приложение из одного окна с надписью «Hello World», выбрали для сборки конфигурацию «Выпуск» и нажали заветный зелёный треугольник. Через несколько секунд успешно запустится наша программа. Находим, где же программа лежит. Путь к ней будет примерно такой: D:\…Projects\2013-09-30_HelloWorld\build-HelloWorld-Desktop_Qt_5_2_0_MinGW_32bit-Выпуск\release\HelloWorld.exe. Радоваться рано. Если мы закроем Qt Creator, отправимся по этому пути и попытаемся запустить HelloWorld.exe,то получим следующую ошибку: «Запуск программы не возможен, так как на компьютере отсутствует Qt5Core.dll. Попробуйте переустановить программу.» Точно такая же ошибка возникнет на любом другом компьютере, где мы попытаемся запустить эту программу. Варианты решения:

1. Пересобрать сам Qt, чтобы собранные приложения статически линковались с библиотеками Qt 5 — долго, сложно, программа будет тяжёлая, и заморочки с лицензированием

2. Устанавливать на все компьютеры, где будем использовать программу, библиотеки Qt 5, совместимые с нашей сборкой, и прописывать путь к ним в системной переменной PATH

3. Сложить все необходимые DLL-библиотеки в одну папку с экзешником нашей программы. Получится по сути Portable-версия, которую можно будет хоть с флэшки запускать. Этот способ самый простой, им и воспользуемся.

Порядок следующий:

1. Копируем программу в отдельную папку

2. Запускаем, смотрим имя файла в тексте ошибки

3. Находим этот DLL-файл в папке C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin и копируем его рядом с экзешником

4. Возвращаемся к пункту 2 и повторяем до тех пор, пока программа не запустится.

Итого у меня по минимуму получился следующий список DLL-библиотек для Qt 5.2:

  • icudt51.dll
  • icuin51.dll
  • icuuc51.dll
  • libgcc_s_dw2-1.dll
  • libstdc++-6.dll
  • libwinpthread-1.dll
  • Qt5Core.dll
  • Qt5Gui.dll
  • Qt5Widgets.dll
  • HelloWorld.exe

Всего размер папки получился 42 Мб, вроде как бы многовато для простого Hello World. Кого это не смущает — уже могут делиться своей программой. А я расскажу теперь, как сократить этот объём хотя бы до 16 Мб, не сильно сложно (для сравнения библиотеки Qt4 от известной программы для хранения паролей KeePassX весят 10 Мб). Библиотеки и программу мы будем просто сжимать бесплатным свободным упаковщиком UPX. Порядок действий:

  1. Качаем программу UPX — версию для windows
  2. Распаковываем скаченный архив
  3. Возвращаемся к нашим DLL-файлам, щёлкаем по каждому правой кнопкой, выбираем «Открыть с помощью» — upx.exe

Вот теперь папка с нашей программой весит 16 Мб, и её содержимое можно спокойно запускать на других компьютерах.