1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 29
|
||||||
клиент на VS++ 2010 сервер на RAD Studio C++Builder19.11.2012, 13:39. Показов 4567. Ответов 30
Метки нет Все метки)
(
Пытаюсь осуществить работу автоматизации между сервером, написанным на RAD Studio ХЕ C++Builder, и клиентом, написанным на VS++ 2010.
Сервер, "MyApp.exe", зарегистрировался в реестре. Имеет один метод "TestMethod1()", его хочу запустить из клиента. В клиенте делаю:
Надо ли добавлять #include "MyApp_TLB.h" (это сгенерировал C++Builder), что бы знать методы сервера?. Пробовал это сделать, но по цепочке требуется добавлять еще кучу include *.h. Этот "MyApp_TLB.h" файл, я так понимаю, нужен для определения интерфейса моего сервера и его свойств и методов. А без указания этого файла нельзя обойтись? Просмотрел кучу инфы в инете по COM, но в голове уже каша. В основном приводятся примеры, где и клиент и сервер в VC++. В общем, прошу помощи.
0
|
19.11.2012, 13:39 | |
Ответы с готовыми решениями:
30
С++ Builder Клиент-Сервер, RAD Studio XE5
Установка библ. RxLib на RAD Studio 2010 (C++ Builder) |
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 29
|
||
19.11.2012, 14:05 [ТС] | ||
Получаем CLSID для сервера CLSIDFromProgID(), создаем экземпляр объекта сервера CoCreateInstance(), запрашиваем у создаваемого объекта интерфейс. После этого вызова будет создан экземпляр объекта-сервера и получен указатель на интерфейс, посредством которого мы можем управлять сервером.
0
|
Модератор
![]() 3403 / 2174 / 353
Регистрация: 13.01.2012
Сообщений: 8,430
|
|||||||||||
19.11.2012, 14:15 | |||||||||||
Это традиционная технология. Да, можно и так. В чем загвоздка?
0
|
Модератор
![]() 3403 / 2174 / 353
Регистрация: 13.01.2012
Сообщений: 8,430
|
||||||
19.11.2012, 14:54 | ||||||
так пробовали? /конечно при условии что ваш объект и интерфейс называются так как здесь указано/
вот тут мой тестовый объект в разных вариациях. правда все под BC++, но должно работать и в MSVC++ (при условии наличия заголовочных файлов или импорте) так как сделано на традиционных методах. https://www.cyberforum.ru/com-... ost3538077
0
|
Модератор
![]() 3403 / 2174 / 353
Регистрация: 13.01.2012
Сообщений: 8,430
|
||||||
19.11.2012, 22:33 | ||||||
если это не COM-объект для управления баллистическими ракетами - выложите. дома погляжу
Добавлено через 6 часов 4 минуты ...попробовал на своем сервере - да, не хочет цеплять интерфейсы из DLL и EXE. из TLB все цепляет, но нужно его правильно пнуть:
через IDispatch конечно можно, но это же не наш метод) кроме того если есть TLB, то все будет OK и без IDispatch
0
|
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 29
|
|
20.11.2012, 10:55 [ТС] | |
Да. Красивый способ.
С no_namespace named_guids прошло. Единственное, что не совсем удобно, так это .tlb. Придется его подкладывать к исполняемому модулю. Но зато напрямую работа с объектом класса. Это удобно. При позднем связывании (IDispatch) полный геморрой с передачей параметров. Теперь осталось зарегистрировать свой сервер. Как, еще не разобрался. Просто regsrv32 не прокатило. Что-то надо делать с процедурой DllRegisterServer. А вот что? Не понятно. Или не с ней...
0
|
Модератор
![]() 3403 / 2174 / 353
Регистрация: 13.01.2012
Сообщений: 8,430
|
|
20.11.2012, 13:42 | |
тут в архивах все изложено
https://www.cyberforum.ru/com-... ost3538077 Добавлено через 1 минуту а от TLB никуда не денешься. меня больше напрягает не таскание этого файла, а его создание
0
|
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 29
|
|
22.11.2012, 16:42 [ТС] | |
0
|
22.11.2012, 16:42 | |
Помогаю со студенческими работами здесь
20
Визуалка в Builder 2010 RAD Studio XE2, простенький блокнотик Работа с объектами в C++ Builder 2010 (RAD 2010) Delphi 2010 (RAD Studio 2010) критическая область Какой компилятор C++ Builder использовать? Rad Studio 2009 глючит. C++ Builder 6 старый Visual Studio 2015 или Embarcadero RAD Studio 10.1 Berlin (C++ Builder) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Оптимизация производительности Express.js бэкенда
Reangularity 23.05.2025
Express. js заслуженно остаётся одним из самых популярных инструментов для создания бэкенда, но даже он не застрахован от проблем с производительностью. Многие разработчики сталкиваются с ситуацией,. . .
|
Продвинутая обработка данных с LINQ в C#
stackOverflow 23.05.2025
LINQ (Language Integrated Query) — это фундаментальное изменение парадигмы работы с данными в C#. Простые запросы Where и Select знакомы любому разработчику, но настоящая мощь LINQ раскрывается в. . .
|
Инфраструктура PKI и сертификатов безопасности
Mr. Docker 23.05.2025
PKI (Public Key Infrastructure) — это невидимый фундамент цифрового доверия, без которого современный интернет просто рассыпался бы как карточный домик. За этой аббревиатурой скрывается целый. . .
|
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
|
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
|
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
|
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
|
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL.
Что. . .
|
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
|
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
|