|
-8 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 123
|
|
Как заставить rundll32 выполнять DLL-библиотеку, продолжительное время?15.07.2019, 23:35. Показов 4155. Ответов 24
Суть проблемы такова: я создаю dll-библиотеку и запускаю ее через rundll32.exe. Проблема в том, что в отличие от программы специально писанной под библиотеку, rundll по быстрому запускает библиотеку, а затем вырубается вместе с ней, через какую-то секунду. Так что используемые в библиотеке компоненты, попросту не успевают сработать и выполнить то что от них требуется. Как бы мне "заклинить" rundll, чтобы он висел в памяти и обеспечивал работу моей библиотеки столько, сколько мне нужно?
0
|
|
| 15.07.2019, 23:35 | |
|
Ответы с готовыми решениями:
24
Как заставить программу выполнять какое-то действие в нужное время?
Как запустить мою DLL через rundll32? |
|
|
|
| 16.07.2019, 00:55 | |
|
Что именно вы подразумеваете под "запускает библиотеку"?
Зачем вообще делать "запускаю dll-библиотеку через rundll32.exe"? Когда весь код функции из dll выполнится - разумеется всё выгружается. Не выходите из неё, пока не всё сделали.
1
|
|
|
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
|
| 16.07.2019, 02:02 | |
|
0
|
|
|
-8 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 123
|
|
| 16.07.2019, 02:23 [ТС] | |
|
0
|
|
|
Модератор
4146 / 2357 / 812
Регистрация: 15.11.2015
Сообщений: 9,434
|
|
| 16.07.2019, 04:48 | |
|
0
|
|
|
-8 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 123
|
|||||||
| 16.07.2019, 21:42 [ТС] | |||||||
|
Вот он:
0
|
|||||||
|
Модератор
4146 / 2357 / 812
Регистрация: 15.11.2015
Сообщений: 9,434
|
|||||||
| 16.07.2019, 22:48 | |||||||
|
Добавлено через 2 минуты http://datadump.ru/rundll32/ Пример использования rundll32 Для запуска программы rundll32 используется синтаксис командной строки следующего вида: rundll32.exe <имя_библиотеки_dll>, <необязательные_параметры_функции> В качестве примера предлагаю разобрать команду запуска апплета "Язык и региональные стандарты" панели управления, вкладка "Форматы": rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0 При выполнении данной команды утилита rundll32 вызовет функцию Control_RunDLL(), находящуюся в библиотеке shell32.dll, и передаст ей следующие параметры: Параметр Описание hWnd Идентификатор (дескриптор) родительского окна, который обычно используется при создании окон в функциях загружаемой библиотеки DLL. hInstance Дескриптор (заголовок экземпляра) выбранной библиотеки DLL. Иначе, стартовый адрес процесса DLL в адресном пространстве. В нашем случае - библиотеки shell32.dll. lpCmdLine Командная строка, передаваемая библиотеке. То есть параметры, передаваемые самой библиотеке. В нашем случае "intl.cpl,,0"; nCmdShow Режим отображения окон выбранной библиотеки. (данные, передаваемые функции CreateProcess). Добавлено через 26 минут Вот это заработало:
Нужен цикл обработки сообщений. ShowModal его обеспечивает. Без цикла будет сразу закрываться.
0
|
|||||||
|
-8 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 123
|
||
| 16.07.2019, 22:56 [ТС] | ||
|
Алсо, простыня текста, которую вы привели выше, мне также знакома.
0
|
||
|
Модератор
4146 / 2357 / 812
Регистрация: 15.11.2015
Сообщений: 9,434
|
|
| 16.07.2019, 23:02 | |
|
Какие компоненты не работают в ShowModal?
0
|
|
|
-8 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 123
|
||
| 16.07.2019, 23:18 [ТС] | ||
|
0
|
||
|
|
|||||||
| 17.07.2019, 00:53 | |||||||
|
Добавлено через 23 секунды Зато вот это "стандартный код" VCL-приложения:
Добавлено через 1 минуту Логика вашей функции StartForm из #6:
Добавлено через 1 минуту Разумеется оно сразу завершается - вы не выполняете цикла обработки сообщений, а сразу выходите из вашей функции. Добавлено через 2 минуты VCL-приложение запускается по Application.Run();, где Application - глобальная переменная из модуля Vcl.Forms.
0
|
|||||||
|
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
||
| 17.07.2019, 02:17 | ||
|
Запускать такую Дельфийскую библиотеку с помощью rundll это чушь. Стандартная утилита Windows не знает ничего да и не должна знать ничего про Дельфи.
0
|
||
| 17.07.2019, 04:46 | |
|
0
|
|
|
Модератор
4146 / 2357 / 812
Регистрация: 15.11.2015
Сообщений: 9,434
|
|||
| 17.07.2019, 09:26 | |||
|
Алсо, окно при первоначальном коде всё же открывается и тут же закрывается. Почему - станет ясно, если почитать про построение приложения под windows. Сделай сначала приложение, используя только Win API, то есть, без всяких VCL.
0
|
|||
|
-8 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 123
|
||||||||||
| 18.07.2019, 00:18 [ТС] | ||||||||||
|
Добавлено через 3 минуты Добавлено через 11 минут P.S. Только что, попробовала вот эту конструкцию:
0
|
||||||||||
|
|
||||||
| 18.07.2019, 00:39 | ||||||
|
Окна на чистом WinAPI. Или просто о сложном.
Цикл обработки сообщений. Добавлено через 20 секунд
1
|
||||||
|
-8 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 123
|
|
| 18.07.2019, 01:06 [ТС] | |
|
0
|
|
|
Житель Земли
|
||
| 18.07.2019, 10:41 | ||
|
и пока не будет внятного ответа на последний вопрос, никто тебе не поможет
0
|
||
|
|
|
| 18.07.2019, 12:01 | |
|
Скорее всего из консоли или батника. Но до сих пор непонятно - зачем так делать?
И в #16 всё работает.
0
|
|
|
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
|
| 19.07.2019, 02:30 | |
|
Надя Кармин, может всё же озвучите конечную задачу? Ну сколько можно болтать ерундой?
Ну на хрена/с какого перепуга вам понадобилось "запускать" что-то из DLL собранной на Дельфи именно с помощью RunDll?
0
|
|
| 19.07.2019, 02:30 | |
|
Помогаю со студенческими работами здесь
20
Продолжительное время появляются бсоды Как заставить кнопки выполнять разные функции? Окраска DataGridView занимает довольно продолжительное время Возможно ли написать библиотеку dll, которая будет открывать окно браузера во время игры? Духовой шкаф Ariston, FD88C выключается через продолжительное время Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|