Можете ли вы извлечь класс Managed C ++ из класса Unmanaged C ++? - PullRequest
1 голос
/ 03 февраля 2009

У меня есть неуправляемый класс C ++, который я написал в неуправляемой dll. У меня есть управляемая DLL, которая ссылается на неуправляемую DLL. Может ли класс в управляемой dll наследоваться от неуправляемого класса?

Использование Visual Studio 2008

Ответы [ 3 ]

5 голосов
/ 03 февраля 2009

Вы не можете. Экземпляры управляемых классов собираются и создаются в куче CLR. Экземпляры неуправляемых классов размещаются в неуправляемой куче. Как можно создать объект, данные которого частично находятся в управляемой куче, а его базовые данные - в неуправляемой куче?

Вы должны попробовать другие методы, например, обернуть управляемый контейнер поверх неуправляемой вещи или наоборот и извлечь из этого, вероятно.

1 голос
/ 21 марта 2009

Вы не можете пока . Херб Саттер написал обширное обоснование C ++ / CLI Design , в котором он намекает, что такие вещи действительно могут быть когда-нибудь возможны. Однако, похоже, что Microsoft прекратила дальнейшее развитие C ++ / CLI?

0 голосов
/ 22 апреля 2009

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

...