
Pawel
25.10.2018
09:13:49
Мне кажется, у тебя немножко каша в голове по поводу "синхронный/асинхронный".
Если ты что-то вызываешь, и чтобы получить результат, тебе не надо ждать специально, а вызов СРАЗУ даст тебе результат, это -- синхронный вызов.
Так работает SendMessageXXX.
Если ты что-то вызываешь, а потом другим вызовом тебе придёт результат -- это Асинхронный вызов.
Так организован PostMessage.
это всё понятно. Я имел ввиду не синхронный обмен сообщениями, а синхронный обмен данными - получил запрос, синхронно отправил ответ. В данный момент у меня это на пайпах реализовано, но вот решил на сообщениях сделать, посколку это показалось мне проще. И в тех ситуациях, когда "клиенту" не надо дожидаться ответа от "сервера", всё прекрасно работает

Ilia
25.10.2018
09:16:16

Pawel
25.10.2018
09:20:40

Vyacheslav
25.10.2018
09:20:44

Google

Vyacheslav
25.10.2018
09:21:12

Ilia
25.10.2018
09:21:39

Pawel
25.10.2018
09:24:44
В json что?
Да всякая специфичсекая фигня {"Command":"подвинуть кнопку с именем Button1 на 2 пикселя вправо, что-то в этом роде"}

Vyacheslav
25.10.2018
09:25:16

Pawel
25.10.2018
09:26:02

Vyacheslav
25.10.2018
09:27:30
Можно ещё на TCP сокетах реализовать, но лучше сразу в DCOM.
В шаблонах студии должны быть шаблоны сервера и клиента. На IDL языке нужно будет описать интерфейсы взаимодействия.
У меня где-то был рабочий пример, но сходу не найду.
Есть 2 вида серверов, которые выполняются в exe -- с библиотекой типов и без. С библиотекой типов будет меньше кода, но чуть сложнее писать, т.к. нужна реализация IDispatch.

Pawel
25.10.2018
09:32:26

Vyacheslav
25.10.2018
09:34:14
Без библиотеки типов создаётся отдельная dll stub/proxy, исходные файлы для которой автоматически генерируются из idl описания.

Ilia
25.10.2018
09:34:51

Vyacheslav
25.10.2018
09:34:53
Эта dll должна быть рядом с сервером и клиентом. Тогда заморачиваться с IDispatch не придется.

Google

Vyacheslav
25.10.2018
09:35:26

Ilia
25.10.2018
09:36:02

Vyacheslav
25.10.2018
09:36:39

Ilia
25.10.2018
09:36:42

Vyacheslav
25.10.2018
09:37:38

Ilia
25.10.2018
09:37:56

Vyacheslav
25.10.2018
09:38:08

Pawel
25.10.2018
09:38:35

Vyacheslav
25.10.2018
09:39:23

Ilia
25.10.2018
09:39:38

Vyacheslav
25.10.2018
09:41:30

Ilia
25.10.2018
09:42:13

Alexey
25.10.2018
09:42:31
Ребята , может подскажите , вообщем есть библиотека OpenCV (С++), в своем приложени вызываю функцию из этой либы, на пример приминение фильтра к изображению, пока происходит обрабтка , ни какой отзывчивости у приложения, кто нибудть может подсказать , как можно при думать, отображение прогресса? это только можно сделать добавлением кода в исходники OpenCV ?

Ilia
25.10.2018
09:42:46

Vyacheslav
25.10.2018
09:42:56

Google

Alexander
25.10.2018
09:43:07
Ребята , может подскажите , вообщем есть библиотека OpenCV (С++), в своем приложени вызываю функцию из этой либы, на пример приминение фильтра к изображению, пока происходит обрабтка , ни какой отзывчивости у приложения, кто нибудть может подсказать , как можно при думать, отображение прогресса? это только можно сделать добавлением кода в исходники OpenCV ?
1) ЧТобы не лагало, в другом потоке обработку пускай
2) У фильтров нет прогресса

yuri
25.10.2018
09:43:14

Ilia
25.10.2018
09:43:43

Vyacheslav
25.10.2018
09:43:57

Alexander
25.10.2018
09:44:14

Ilia
25.10.2018
09:44:51
Да, я неадекватен, когда людям в 21ов веке рекомендуют перейти на DCOM....

Alexey
25.10.2018
09:45:26

Constantine
25.10.2018
09:46:34

Vyacheslav
25.10.2018
09:47:55
ну typelibrary нужна не только лишь для IDispatch...
Автоматные сервера (и шаблоны в студии для них) реализуют IDispatch. Это главное отличие в этих шаьлонах, и это нужно учитывать. То, что такие сервера компилят .tlb файл автоматически и регистрируют его в системе - это вторично.
А так я неавтоматный плюсовый COM сервер, например из Delphi могу использовать. То, что VB умеет общаться только с автоматными серверами - это его проблема. C#, кстати, тоже умеет обходиться без библиотеки типов.

Sergey
25.10.2018
09:48:11

Ilia
25.10.2018
09:48:13
НЕ ну уж лушче Google Protobuf взять...
Но с учётом того, что у парня JSON...

Vyacheslav
25.10.2018
09:48:51

Anatoly
25.10.2018
09:48:56

Vyacheslav
25.10.2018
09:49:07

Ilia
25.10.2018
09:49:24
Ну или его, да.
В общем, я всё.

Vyacheslav
25.10.2018
09:49:38

Constantine
25.10.2018
09:49:50
Я что читаю какие-то буквы, смотрю на DCOM и представляю себе, что я буду кросспрограммное средство типа COM использовать для собственных клиент-серверов...

Sergey
25.10.2018
09:49:50
Мне кажется, если чел имел опыт с всей этой машинерией, то это одно. Если это будет первый опыт, то может и не надо.

Google

Vyacheslav
25.10.2018
09:50:13
Да в винде чтобы .lnk файл создать, COM нужен!

Constantine
25.10.2018
09:51:15

Vyacheslav
25.10.2018
09:51:23
Нужны современные средства - добро пожаловать в Rest API, gRPC и прочие новые проекты

Anatoly
25.10.2018
09:52:13

Vyacheslav
25.10.2018
09:52:23

Constantine
25.10.2018
09:53:04

Anatoly
25.10.2018
09:53:12

Vyacheslav
25.10.2018
09:53:34

Anatoly
25.10.2018
09:53:42

Vyacheslav
25.10.2018
09:54:17

Constantine
25.10.2018
09:54:46

Alexander
25.10.2018
09:56:02

Vyacheslav
25.10.2018
09:56:27
Если сдох СОМ сервер, то COM сам это будет делать на стороне клиента

Constantine
25.10.2018
09:57:36

Vyacheslav
25.10.2018
09:58:05

Constantine
25.10.2018
09:58:15

Vyacheslav
25.10.2018
09:58:27
Это даже не переходник, это костыль получается

Google

Constantine
25.10.2018
09:59:34

Vyacheslav
25.10.2018
10:00:31

Constantine
25.10.2018
10:00:52

Vyacheslav
25.10.2018
10:01:13
Даже std::thread является полудохлой сущностью, если исполняемый поток завершился.

Constantine
25.10.2018
10:02:24

Vyacheslav
25.10.2018
10:02:56
И в одном потоке. Создавать его в другом потоке только приводит к путанице, но возможно. Сама сушность "диалог" (handle) может жить и без message loop