Вопрос

Я создал DLL с TFRAME. Как я могу загрузить его в свое приложение, я не люблю использовать BPLS, я хочу только уничтожить EXE и DLL с моим приложением

Это было полезно?

Решение

Поскольку BPL - это DLL, идите BPL Way: намного проще.

Другие советы

Это можно сделать, но это адская работа, чтобы заставить его работать без ошибок или проблем с памятью. Что еще хуже, вы будете использовать два VCL в своем приложении, один в вашем исполняемом файле, а другой - в DLL. Ваш кадр будет попытаться обратиться к DLL VCL, которая предоставила бы очень другую информацию, чем Exe VCL. Особенно при проверке глобальных переменных экрана и приложения.
Тем не менее, кадр - это не что иное, как специальное управление окном, как формы. Вы можете экспортировать функцию из своего DLL, что вернет значение типа TFRAME. Ваше приложение сможет вызвать эту функцию и, таким образом, создать кадр, использовать ее любым способом, которым оно использует все другие кадры. Однако в вашем кадре не будет никакой конкретной информации о дополнительной функциональности.
Следующее, над чем вам придется поработать, - это синхронизировать данные между EXE и DLL, связанным с VCL. Это не очень красиво. Кроме того, у вас, вероятно, возникнут некоторые проблемы при использовании клавиши вкладки для вкладки через элементы управления на вашем экране, так как клавиша вкладки не сможет вступить за пределы кадра. И вы заметите еще несколько странностей.
Я работал над простым приложением, которое использовало кадры таким образом. Я и двое других потратили два месяца, получая какое -то рабочее решение, которое хорошо работало без утечек памяти и других неприятностей. Прежде чем мы начали этот проект, это казалось хорошей идеей. После этого мы решили, что это не оказалось решением, которое мы хотели, поэтому мы объединили код DLL с кодом исполняемого файла, чтобы просто создать один исполняемый файл. Так было лучше.
Мы действительно использовали другую альтернативу. Мы начали использовать компонент WebBrowser в Mainform. DLL будет содержать HTML -страницу, хорошо отформатированную и кучу методов, которые будут вызваны при использовании определенных конкретных функций. У нас было это работало в простом приложении для тестирования с хорошими результатами, но затем компания пошла в главу 11 ... Мой работодатель погибнул, с тех пор, как сделка с некоторыми клиентами сильно оказалась, оставив компанию с некоторыми огромными долгами. И, таким образом, интересный проект закончился ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top