Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760

Взаимодействие exe64 с dll32. COM объект без регистрации в реестре

17.02.2016, 00:26. Показов 2176. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
добрый вечер.

windows7 (или выше), visual studio 2013, c++

есть 64 битное приложение (для простоты пусть будет обычное консольное)
и 32 битная библиотека.

нужно наладить взаимодействие при помощи COM объекта.

при этом критично обойтись без регистрации в реестре.

можно ли каким то образом сделать такое?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2016, 00:26
Ответы с готовыми решениями:

OLE без регистрации в реестре
Доброго времени суток. Можно ли использовать OLE без регистрации в реестре?

Связь клиента с локальным exe-сервером без регистрации в реестре
добрый вечер. есть готовый ATLExeServer, и консольный клиент. нужно осуществить взаимодействие между ними без необходимости...

Выполнить поиск в реестре регистрации заданного пользователем расширения
Выполнить поиск заданного пользователем расширения файла в реестре. Если соответствующий раздел в реестре имеется, вывести его значение. ...

7
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
17.02.2016, 13:11
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

Цитата Сообщение от hoggy Посмотреть сообщение
можно ли каким то образом сделать такое?
MS вроде что то там придумал для этого тут. но я этого не понял и выглядит как то тяжело
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
17.02.2016, 20:05  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
MS вроде что то там придумал для этого тут. но я этого не понял и выглядит как то тяжело
спасибо.

однако, прежде чем написать сюда, я основательно перерыл интернеты.
msdn - первое, где я побывал.
даже нашел у них проект-иллюстрацию (которая без напильника не заработала).

и даже уже сумел организовать взаимодействие между клиентом и сервером.

но есть проблема:

что бы обойтись без регистрации,
нужно организовать манифест для клиента, в котором указывается с какой dll нужно связываться.

проблема здесь в том, что это получается связка: CLSCTX_INPROC_SERVER

вообще, INPROC_SERVER у меня прекрасно заработал.
но это не то, что нужно.

мне же нужно из 64 битного executable связываться с 32 library.
собственно, и com только для этого и нужен изначально.
а значит, что мне нужно что-то вроде CLS_CTX_LOCAL_SERVER

я думал, ком-сервис устроет для меня суррогатный процесс, но нет.
связь не устанавливается.


сейчас я думаю организовать com внутри 32 битного executable

потом для 64 битного executable прописать манифест связи не с dll, а с exe
но не уверен, что сработает.

мне не удалось найти никаких вразумительных материалов на эту тему.

так что я уже второй день какими то
непонятными экспериментами занимаюсь...
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
17.02.2016, 20:51
hoggy, а почему бы не использовать 32-битный rundll32.dll?
Связываться с COM не придется, с регистрацией в реестре тоже.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
17.02.2016, 23:22  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
а почему бы не использовать 32-битный rundll32.dll?
потому что я слишком плохо знаю материал.
нарыл run32dll.exe,
который позволяет запускать dll на выполнение.
но мне не очевидно, как она должна быть оформлена, что бы работать с COM.

про rundll32.dllмне вообще ничего не известно.

поэтому я и создал тему.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
18.02.2016, 08:34
Наверняка здесь ты уже побывал, но все же:

INFO: Windows Rundll and Rundll32 Interface
https://support.microsoft.com/en-us/kb/164787

Т.е. как я вижу - нужно из 64-битного exe запустить 32-битный rundll32.exe,
передав к нему путь к 32-битной dll. И dll должна иметь экспортируемую
функцию, оформленную так, как написано в статье.

Цитата Сообщение от hoggy Посмотреть сообщение
мне не очевидно, как она должна быть оформлена, что бы работать с COM
Насколько я помню, COM-сервер в exe без регистрации в реестре
сделать не получится. Registration-Free COM - это только для
внутрипроцессных серверов (inproc, т.е. dll).

А принципиально вообще связываться с COM?
Нельзя ли, например, заюзать RPC вместо него?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
28.02.2016, 19:24  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
А принципиально вообще связываться с COM?
да. не обязательно dll, можно local com server,
но нужно что бы это был com.
0
0 / 0 / 1
Регистрация: 28.03.2016
Сообщений: 4
31.03.2016, 11:33
У 1с ников есть так называемые технологии создания внешних компонент. Без регистрации используется native api. Документация есть в сети, по запросу "Создание внешних компонент 1с 8.3". Я думаю что можно как то извратиться, и прикрутить это под Ваши задачи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2016, 11:33
Помогаю со студенческими работами здесь

Взаимодействие с клиентом steam: Регистрации, авторизация
Собственно в какую сторону копать. Функции нужны именно регистрации,авторизация и чтоб мог работать со steam гуардом(P.S сразу говорю не...

Сетевое взаимодействие используя COM Объект WINDOWS
Подскажите пожалуйста, как в 1с реализовать сетевое взаимодействие с помощью COM объекта Windows? Например, что бы получить XML документ...

Можно Ли В Журнале Регистрации Искать По Ссылке На Объект
Добрый день! Ситуация - в 1С (8.1 серверная конф УТ 10.3) внезапно обнаруживаем в остатках на складе минуса, документ партии -...

Применение изменений в реестре без перезагрузки
Много где обсуждалась данная тема, но так ничего и не работает. SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0,...

Применить изменения в реестре без перезагрузки
Ребят, я сделал, асоциацию файлов (внёс изменение в реестр), у меня возникла проблемма, для того что бы изменения вступили в силу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru