Pregunta

Tengo una clase de C ++ unmanged que he escrito en un archivo DLL de unmanged. Tengo una DLL administrada que hace referencia a la DLL no administrado. ¿Puede una clase en la DLL administrados derivar de la clase no administrado?

Con Visual Studio 2008

¿Fue útil?

Solución

No se puede. Las instancias de clases administradas son basura recogida y creado en el montón de CLR. Las instancias de clases no administrados se asignan en el montón no administrado. ¿Cómo puedes ser capaz de crear un objeto cuyos datos parcialmente en el montón administrado y sus bases de datos en el montón no administrado?

Usted debe tratar otras técnicas, por ejemplo, envolver un contenedor gestionado más de la cosa o vice versa no administrado y deducir de que, probablemente.

Otros consejos

No se puede sin embargo . Herb Sutter escribió una extensa C ++ / CLI Fundamentos de diseño donde indirectas tales cosas de hecho puede ser posible un día. Sin embargo, parece que Microsoft ha dejado un mayor desarrollo de C ++ / CLI?

Lo mejor que puede hacer es envolver la clase no administrado en un envoltorio gerente y luego se derivan de ello.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top