CreateFileMapping с классом, содержащим виртуальные методы - PullRequest
0 голосов
/ 04 января 2012

Я хочу создать экземпляр класса и поместить его в общую память, чтобы один и тот же экземпляр можно было вызывать из нескольких процессов. Однако у этого класса есть виртуальные методы, которые, я думаю, могут вызвать проблемы, так как я прочитал сопоставленные данные, которые не могут содержать указатели, как в случае с vtable в классе. Это будет работать?

1 Ответ

0 голосов
/ 04 января 2012

Как прокомментировал Kerrek SB, вы не можете отобразить класс, содержащий виртуальные методы.Но вы, вероятно, можете создать простую структуру или класс без виртуалов, отобразить это, а затем дать указатель на него другому классу, который имеет виртуалы и использует простую структуру в качестве своей реализации.По сути, идиома Pimpl .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...