C # разделяет память между приложением C ++ и приложением C # с использованием COM-объекта - PullRequest
0 голосов
/ 02 февраля 2010

Возможно ли / возможно иметь общую память в COM-объекте, которая будет использоваться приложениями, созданными с использованием C # и / или C ++?
Может ли C # получить доступ к общей памяти в COM-объекте без сбоев?

Спасибо,
Ади Барда

Ответы [ 2 ]

1 голос
/ 02 февраля 2010

Да, это именно то, что вам нужно - все, что вам нужно сделать, это создать файл отображения памяти . Если вы не можете сделать это непосредственно в .NET, вам нужно сделать это в коде C / C ++, который вы встраиваете и вызываете из приложения .NET.

Чтобы сделать его защищенным от сбоев, необходимо правильно понимать основные тонкости, поскольку boost :: interprocess может помочь, поскольку оно достаточно хорошо абстрагирует их.

0 голосов
/ 02 февраля 2010

Я действительно не понимаю, какую роль в этом играет COM-объект. Но нет, ничто не делает MMF принципиально несовместимыми с управляемым кодом. Их просто очень неудобно использовать, так как вам нужны указатели для доступа к ним.

Поддержка MMF появится в .NET 4.0. Вероятно, слишком рано использовать это в производственном коде. Но обязательно посмотрите на API , так что то, что вы делаете сейчас, будет хорошо соответствовать API при переключении.

...