UniGuy Posted August 12, 2021 Share Posted August 12, 2021 Здравствуйте, уважаемые разработчики и пользователи uniGUI! Этот насущный, но крайне важный вопрос, заставил меня обратиться к вам за помощью. Использую пробную версию uniGUI, т.к. в случае успешного испытания планирую приобретать продукт. Мне необходимо вызвать из приложения uniGUI (приложение работает на IIS) свою библиотеку DLL, созданную в обычном приложении Delphi VCL-Application. Если я создаю проект VCL-Application и вызываю эту DLL оттуда, проблем нет - процедура из DLL вызывается. Но если я пытаюсь проделать то же самое в UniGUI, то вызываемая процедура не выполняется. После вызова процедуры происходит Connection Error. Процедура из библиотеки просто открывает форму, которая находится в этой же библиотеке. У меня есть ощущение, что сам вызов делаю не правильно. Вот процедура из библиотеки DLL, она показывает форму с именем "OneForm": procedure ShFrm(AOwner: TComponent); var MyForm: TOneForm; begin MyForm := TOneForm.Create(AOwner); MyForm.ShowModal; MyForm.Free; end; Вот вызов этой процедуры из uniGUI-приложения: procedure ShFrm(AOwner: TComponent); external 'ExampleDLL.dll'; Сам вызов: ShFrm(UniApplication); Что здесь я делаю неправильно? Quote Link to comment Share on other sites More sharing options...
UniGuy Posted August 12, 2021 Author Share Posted August 12, 2021 Друзья, неужели в сообществе нет никакого решения этой проблемы? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted August 13, 2021 Share Posted August 13, 2021 Здравствуйте, Спасибо за Ваш интерес к UniGUI. 21 hours ago, UniGuy said: Процедура из библиотеки просто открывает форму, которая находится в этой же библиотеке. А что за форма? VCL? Quote Link to comment Share on other sites More sharing options...
MSMK Posted August 14, 2021 Share Posted August 14, 2021 On 8/12/2021 at 7:09 PM, UniGuy said: Здравствуйте, уважаемые разработчики и пользователи uniGUI! Этот насущный, но крайне важный вопрос, заставил меня обратиться к вам за помощью. Использую пробную версию uniGUI, т.к. в случае успешного испытания планирую приобретать продукт. Мне необходимо вызвать из приложения uniGUI (приложение работает на IIS) свою библиотеку DLL, созданную в обычном приложении Delphi VCL-Application. Если я создаю проект VCL-Application и вызываю эту DLL оттуда, проблем нет - процедура из DLL вызывается. Но если я пытаюсь проделать то же самое в UniGUI, то вызываемая процедура не выполняется. После вызова процедуры происходит Connection Error. Процедура из библиотеки просто открывает форму, которая находится в этой же библиотеке. У меня есть ощущение, что сам вызов делаю не правильно. Вот процедура из библиотеки DLL, она показывает форму с именем "OneForm": procedure ShFrm(AOwner: TComponent); var MyForm: TOneForm; begin MyForm := TOneForm.Create(AOwner); MyForm.ShowModal; MyForm.Free; end; Вот вызов этой процедуры из uniGUI-приложения: procedure ShFrm(AOwner: TComponent); external 'ExampleDLL.dll'; Сам вызов: ShFrm(UniApplication); Что здесь я делаю неправильно? добрый день! Кажется Вам придется переписать свою DLL под uniGUI, так как у вас вызывается VCL форма. Quote Link to comment Share on other sites More sharing options...
UniGuy Posted August 14, 2021 Author Share Posted August 14, 2021 On 8/13/2021 at 1:16 PM, Sherzod said: Здравствуйте, Спасибо за Ваш интерес к UniGUI. А что за форма? VCL? Здравствуйте! Да, именно это форма VCL. Есть подозрение, что такую форму нельзя открывать из проекта uniGUI. Что мне тогда в этом случае можно сделать? Quote Link to comment Share on other sites More sharing options...
UniGuy Posted August 14, 2021 Author Share Posted August 14, 2021 2 hours ago, =GGG= said: добрый день! Кажется Вам придется переписать свою DLL под uniGUI, так как у вас вызывается VCL форма. Доброго дня! А как мне это сделать? Каким образом я могу изменить мою библиотеку DLL в формат библиотеки uniGUI DLL? Quote Link to comment Share on other sites More sharing options...
rgreat Posted August 15, 2021 Share Posted August 15, 2021 Ну и нафига тебе VCL форма "открывающаяся" на веб сервере? Людей подобными идеями насмешить? Неужели у тебя есть надежда, что у тебя эта форма в браузерах на клиенте отобразиться? Quote Link to comment Share on other sites More sharing options...
UniGuy Posted August 15, 2021 Author Share Posted August 15, 2021 18 hours ago, rgreat said: Ну и нафига тебе VCL форма "открывающаяся" на веб сервере? Людей подобными идеями насмешить? Неужели у тебя есть надежда, что у тебя эта форма в браузерах на клиенте отобразиться? Эту форму мне надо показать на клиенте. Только не в браузере, а обычным Windows-окном. Quote Link to comment Share on other sites More sharing options...
stas Posted August 16, 2021 Share Posted August 16, 2021 Это невозможно. Вы можете использовать DLL, но невизуальную. VCL форма покажется на сервере и то не во всех случаях. Вам необходимо изменить логику приложения. Quote Link to comment Share on other sites More sharing options...
UniGuy Posted August 16, 2021 Author Share Posted August 16, 2021 1 hour ago, stas said: Это невозможно. Вы можете использовать DLL, но невизуальную. VCL форма покажется на сервере и то не во всех случаях. Вам необходимо изменить логику приложения. А как же быть в том случае, если мне необходимо взаимодействовать со standalone-приложением через визуальную DLL? Quote Link to comment Share on other sites More sharing options...
stas Posted August 16, 2021 Share Posted August 16, 2021 Вы должны написать визуальное приложение, которое вызывает визуальную библиотеку, инсталлировать это приложение на компьютер клиента. И осуществлять обмен с веб приложением через это визуальное приложение. Только совершенно не понимаю, какой в этом смысл. Quote Link to comment Share on other sites More sharing options...
UniGuy Posted August 16, 2021 Author Share Posted August 16, 2021 8 hours ago, stas said: Вы должны написать визуальное приложение, которое вызывает визуальную библиотеку, инсталлировать это приложение на компьютер клиента. И осуществлять обмен с веб приложением через это визуальное приложение. Только совершенно не понимаю, какой в этом смысл. Спасибо. Я и подумал, что это единственный вариант в таком случае. Он - запасной. Может и не пригодиться. Просто как выход из ситуации. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.