8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
1 | |
Взаимодействие exe64 с dll32. COM объект без регистрации в реестре17.02.2016, 00:26. Показов 1880. Ответов 7
Метки нет (Все метки)
добрый вечер.
windows7 (или выше), visual studio 2013, c++ есть 64 битное приложение (для простоты пусть будет обычное консольное) и 32 битная библиотека. нужно наладить взаимодействие при помощи COM объекта. при этом критично обойтись без регистрации в реестре. можно ли каким то образом сделать такое?
0
|
17.02.2016, 00:26 | |
Ответы с готовыми решениями:
7
OLE без регистрации в реестре Связь клиента с локальным exe-сервером без регистрации в реестре Выполнить поиск в реестре регистрации заданного пользователем расширения Взаимодействие с клиентом steam: Регистрации, авторизация |
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
17.02.2016, 20:05 [ТС] | 3 |
спасибо.
однако, прежде чем написать сюда, я основательно перерыл интернеты. msdn - первое, где я побывал. даже нашел у них проект-иллюстрацию (которая без напильника не заработала). и даже уже сумел организовать взаимодействие между клиентом и сервером. но есть проблема: что бы обойтись без регистрации, нужно организовать манифест для клиента, в котором указывается с какой dll нужно связываться. проблема здесь в том, что это получается связка: CLSCTX_INPROC_SERVER вообще, INPROC_SERVER у меня прекрасно заработал. но это не то, что нужно. мне же нужно из 64 битного executable связываться с 32 library. собственно, и com только для этого и нужен изначально. а значит, что мне нужно что-то вроде CLS_CTX_LOCAL_SERVER я думал, ком-сервис устроет для меня суррогатный процесс, но нет. связь не устанавливается. сейчас я думаю организовать com внутри 32 битного executable потом для 64 битного executable прописать манифест связи не с dll, а с exe но не уверен, что сработает. мне не удалось найти никаких вразумительных материалов на эту тему. так что я уже второй день какими то непонятными экспериментами занимаюсь...
0
|
Ушел с форума
|
|
17.02.2016, 20:51 | 4 |
hoggy, а почему бы не использовать 32-битный rundll32.dll?
Связываться с COM не придется, с регистрацией в реестре тоже.
0
|
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
17.02.2016, 23:22 [ТС] | 5 |
потому что я слишком плохо знаю материал.
нарыл run32dll.exe, который позволяет запускать dll на выполнение. но мне не очевидно, как она должна быть оформлена, что бы работать с COM. про rundll32.dllмне вообще ничего не известно. поэтому я и создал тему.
0
|
Ушел с форума
|
|
18.02.2016, 08:34 | 6 |
Наверняка здесь ты уже побывал, но все же:
INFO: Windows Rundll and Rundll32 Interface https://support.microsoft.com/en-us/kb/164787 Т.е. как я вижу - нужно из 64-битного exe запустить 32-битный rundll32.exe, передав к нему путь к 32-битной dll. И dll должна иметь экспортируемую функцию, оформленную так, как написано в статье. Насколько я помню, COM-сервер в exe без регистрации в реестре сделать не получится. Registration-Free COM - это только для внутрипроцессных серверов (inproc, т.е. dll). А принципиально вообще связываться с COM? Нельзя ли, например, заюзать RPC вместо него?
0
|
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
28.02.2016, 19:24 [ТС] | 7 |
да. не обязательно dll, можно local com server,
но нужно что бы это был com.
0
|
0 / 0 / 1
Регистрация: 28.03.2016
Сообщений: 4
|
|
31.03.2016, 11:33 | 8 |
У 1с ников есть так называемые технологии создания внешних компонент. Без регистрации используется native api. Документация есть в сети, по запросу "Создание внешних компонент 1с 8.3". Я думаю что можно как то извратиться, и прикрутить это под Ваши задачи.
0
|
31.03.2016, 11:33 | |
31.03.2016, 11:33 | |
Помогаю со студенческими работами здесь
8
Сетевое взаимодействие используя COM Объект WINDOWS Можно Ли В Журнале Регистрации Искать По Ссылке На Объект Применение изменений в реестре без перезагрузки Применить изменения в реестре без перезагрузки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|