Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C/C++ Найти к какому COM порту подключено устройство https://www.cyberforum.ru/ c-cpp/ thread1665729.html
Добрый день. Подскажите пожалуйста, как можно получить список активных COM портов в винде(тот что я вижу в диспетчере устройств). Задачу у меня следующая: на ардуино собрал простенькую схему и написал простенькую прогу которая считывает с COM порта символы. COM порт задан фиксировано, а я хочу сделать так, чтобы порт выбирался автоматом. Подскажите в какую сторону рыть?
C/C++ Взаимодействие exe64 с dll32. COM объект без регистрации в реестре
добрый вечер. windows7 (или выше), visual studio 2013, c++ есть 64 битное приложение (для простоты пусть будет обычное консольное) и 32 битная библиотека. нужно наладить взаимодействие при помощи COM объекта. при этом критично обойтись без регистрации в реестре.
C/C++ Activex перенести на задний план (позиция по оси z) Здравствуйте! Проблема состоит в следующем... При добавлении в СКАДу (omron cx-supervisor) мой activex (написан в MFC C++) в RunTime режиме всегда идет поверх объектов, которые созданы в СКАДе (например Ellipse), даже если для объекта СКАДы я указываю Rise -> To Top, хотя в режиме разработки все нормально (axtivex можно передвинуть на задний план). Как сделать так чтобы мой activex оказался... https://www.cyberforum.ru/ c-cpp/ thread1643286.html C/C++ ActiveX Color Property Page не позволяет выбрать цвет из палитры https://www.cyberforum.ru/ c-cpp/ thread1640751.html
Здравствуйте. Я создал в Visual Studio ActiveX на MFC, добавил туда стандартную страницу свойств для выбора цвета, создал свойство BackColor. Страница свойств появилась, но выбор цвета можно осуществить только если выбираешь его из "Системный цвет". Если выбирать цвет из палитры, то ничего не происходит. Подскажите как это побороть... Если писать значение цвета напрямую в свойство, минуя...
MS Word получить плоский текст с ячейки C/C++
Есть код нечто вроде: Variant Cell= Table.OleFunction("Cell", r, 2); Variant Range= Cell.OlePropertyGet("Range"); Variant Text= Range.OlePropertyGet("Text"); (Использую С++Builder) Но проблема в том что в ячейке таблицы содержится не только текст но и формула, мне нужно изъять только текст или "плоское" представление текста того что в ячейки без непонятных "левых" символов,...
C/C++ Как зарегистрировать в реестре сервер как Word.Application, но со своим CLSIDом? Добрый день! Вообще не в теме OLE-серверов скажу сразу. Подскажите как их правильно писать и регистрировать в системе. Само задание: Надо создать ole-сервер, который будет принимать запрос от приложения на открытие какого-нибудь doc файла через OLE Word (наш ole-сервер зарегистрировать на Word.Application), а сам вызов переделать на открытие через OLE LibreOffice. Просто увидеть как можно... https://www.cyberforum.ru/ c-cpp/ thread1637782.html
C/C++ Вызов функции из Dll (анализа IDA) https://www.cyberforum.ru/ c-cpp/ thread1632067.html
Здравствуйте! подскажите пожалуйста как можно получить указатель this класса что бы потом можно было вызывать функции из таблицы виртуальных функций?
C/C++ Создание модемного соединения для виртуального ком порта
Доброго времени суток! Нужна помощь или совет, по созданию модемного соединения к виртуальному порту. Данные между портами передаются отлично, но вот соединение к интернету не могу подключить. На этом всё останавливается. Номера *99***1# и *99#. Когда устанавливаю порт на реальный, установленный системой всё работает на ура. Но а как быть с виртуальным?
C/C++ Необходимо разобраться в коде https://www.cyberforum.ru/ c-cpp/ thread1607517.html
Функция вывода символа fputchar, разработанная в этом примере, позволяет вывести символ в последовательный порт. Функция принимает в качестве параметра одиночный символ. #include <stdio.h> #include <string.h> #include <REG52.H> void fputchar (unsigned char c1) { SBUF = c1; while (!TI); TI = 0; }
C/C++ Перехват функции для определенного потока Здравствуйте! Подскажите пожалуйста, возможно ли поставить перехват (по средствам Detours 2.1) функции для определенного потока ? https://www.cyberforum.ru/ c-cpp/ thread1607180.html
DLL hijacking или подмена DLL при открытии .docx C/C++
Набрел как-то на статью на хабре. Решил проверить на своем компе. Создал DLL следующего содержания: #include <windows.h> BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: MessageBoxA(NULL, "Hi from DLL", "Info", MB_OK); break;
C/C++ COM: SAFEARRAY добавление элементов https://www.cyberforum.ru/ c-cpp/ thread1603053.html
День добрый. Перерыл множество ресурсов в поисках ответа на мой вопрос, но всё тщетно. Существует функция, в ней 4 типа данных: int, char, string, float. Все эти данные должны приводиться к одному общему, добавляться в массив SAFEARRAY и отправляться в dll на C#. Вопрос: каким образом добавлять новые значения в массив SAFEARRAY?
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
0

Связь клиента с локальным exe-сервером без регистрации в реестре - C/C++ - Ответ 8813646

28.02.2016, 19:52. Показов 1307. Ответов 1
Метки (Все метки)

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

есть готовый ATLExeServer,
и консольный клиент.

нужно осуществить взаимодействие между ними без необходимости регистрации в реестре.

сразу скажу, что вариант с регистрацией в реестре - рабочий.

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


проблема следующая:

в конструкторе/деструкторе com-объекта прописал вывод лога в текстовый файл.
просто, что бы зафиксировать факты:
объект корректно создается, и корректно разрушается.

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

далее запускаю exe клиента.
клиент не может получить доступ к интерфейсу com-объекта сервера.

привожу код клиента:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// импортирую данные из библиотеки типов
// #import PATH_TO_TYPELIBRARY__ no_namespace
#include "precompiled.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    (void)argc, argv;
 
    setlocale(LC_ALL,"");
    CoInitializeEx(0, COINIT_MULTITHREADED);
 
    // сервер при запуске регистрирует фабрику своего com-объекта
    // после чего, эта фабрика находится в списке "активных" объектов
    // в диспетчере com-библиотеки
 
    // и любое приложение может запросить эту фабрику
    // нужно лишь указать гуид объекта
    // который эта фабрика должна создавать
 
    IClassFactory* factory = NULL;
    const auto hRe = CoGetClassObject(__uuidof(ATLSimpleObjectSTA), 
        CLSCTX_LOCAL_SERVER, 
        NULL, 
        __uuidof(IClassFactory), 
        (void**)&factory
    );
 
    // в этой точке все хорошо.
    // клиент благополучно заполучил фабрику в пользование
    // теперь нужно создать сам объект
    
    IUnknown* ptr_ = NULL;
    auto hRe2 = factory->CreateInstance(NULL, __uuidof(IUnknown), (void**)&ptr_);
 
    // создание com-объекта проходит отлично.
    // никаких ошибок. интерфейс валидный.
    // в конструкторе com-объекта я вывожу лог в обычный текстовый файл.
    // и по наличию этого файла делаю вывод:
    // конструктор com-объекта действительно отработал
 
    // если сделать ptr_->Release();
    // то в файловом логе, я увижу срабатывание деструктора
    // com-объекта.
 
    // обратите внимание: клиент заполучает фабрику объекта
    // а затем создает сам объект
    // и все это - без необходимости использовать реестр
    // и без необходимости side by side сборки
 
    // проблема в том, что нам не нужен интерфейс IUnknown
    // для работы клиенту нужен интерфейс IATLSimpleObjectSTA
    // в котором определены все необходимые методы
    // ради доступа к которым вся эта затея с локальным сервером и затевалась
 
    IATLSimpleObjectSTAPtr ptr;
    auto hRe3 = ptr_->QueryInterface( __uuidof(IATLSimpleObjectSTA), (void**)&ptr);
 
    // однако, к сожалению это не работает
    // ошибка: hRe3 E_NOINTERFACE No such interface supported.
    // интерфейс IATLSimpleObjectSTA не поддерживается.
 
    ptr_->Release();
 
    CoUninitialize();
    system("pause");
}
есть подозрение, что это как то связанно с proxy/stub

клиент не может общаться с локальным сервером напрямки
но на этом мои предположения заканчиваются.

как заставить клиент подхватывать нужные интерфейсы com-объекта?

Вернуться к обсуждению:
Связь клиента с локальным exe-сервером без регистрации в реестре C/C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2016, 19:52
Готовые ответы и решения:

Связь клиента с сервером
Доброго времени суток, уважаемые пользователи форума, прошу поделиться вас опытом и советами со...

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

Как правильно установить связь клиента с сервером при помощи websock?
Всем доброе время суток!!! Помогите пожалуйста разобраться. Необходимо установить связь от...

NET-библиотека в Delphi без регистрации ее в реестре
Всем привет! Хочу использовать библиотеку, написанную на c#, в программе, написанной на Delphi....

1
28.02.2016, 19:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2016, 19:52
Помогаю со студенческими работами здесь

Cеть с доменом, файл обменником, сервером 1С, атс, фаерволом, локальным сервером сайта
Народ помогите схематично хотябы разобраться как организовать ПАРАВЕЛЬНО сеть с доменом, файл...

Взаимодействие exe64 с dll32. COM объект без регистрации в реестре
добрый вечер. windows7 (или выше), visual studio 2013, c++ есть 64 битное приложение (для...

Обработать файл на стороне клиента, без общения с сервером?
Реально ли это сделать, пользователь выберет файл в браузере, так же на стороне клиента файл...

Синхронизация клиента с сервером, без участия в обработке данных
Суть вопроса такова: есть сетевая игра, в которой все данные обрабатываются сервером, клиент...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru