Re: сопряжение двух программных модулей
От: Pavel Dvorkin Россия  
Дата: 19.12.16 13:56
Оценка:
Здравствуйте, _hum_, Вы писали:

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


Симулятор — это отдельный EXE, так? И DLL твоя ему никак не нужна, он ее не загрузит. Как ты хочешь ему ее впихнуть ?

__>правильно я вижу подход к решению данной проблемы:


__>- организую в dll-ке статический объект, вмещающий в себя собственно ядро модуля управления;

__>- в конструктор объекта всмещаю загрузку из файла настроек и инициализацию ядра;

До сих пор все ясно

__>- организую в dll-ке функции, обсепечивающие интерфейс работы симулятора с модулем.


А вот тут надо уточнить. Что за интерфейс с работающим симулятором (отдельным процессом, не использующим эту DLL) ?

__>в таком варианте меня смущает следующее: если за загрузку dll-ки в общем случае отвечает операционная система


DLL никуда сама не загружается. Ее явно или неявно загружает некий процесс, и при этом не симулятор (которому она не нужна), а твой процесс, который ее загрузит , и о котором ты ничего пока не сказал.

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


Если твой процесс DLL загрузит — может и выгрузить, и перезагрузить.

Мне кажется, ты не совсем верно понимаешь принципы функционирования процессов и подключения DLL. Опиши лучше подробнее задачу. В чужой процесс (симулятор) ты не вмешаешься так просто и DLL ему не впихнешь (разве что хуком, но это особая песня)
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.