Sí, es muy posible. Solo debes tener cuidado con los tipos. Muchos se traducen muy bien, pero algunos son extravagantes.
El nombre del concepto que está buscando es COM interopera. Consulte aquí para obtener un getting started tutorial. Por supuesto, el archivo DLL de MFC debe admitir que COM sea accesible desde .NET. Debe volver a generar las DLL de MFC con las interfaces COM adecuadas admitidas.
Aquí hay un MSDN overview of COM Automation completo con enlaces a ejemplos de proyectos.
Y aquí hay un simple but to-the-point CodeProject sample que muestra exactamente cómo se pueden usar las DLL COM desde los ensamblados .NET.
Excelente pinvoke reference here. Para acceder a las API nativas de Win32 también.
Editar: Otra idea
En caso de no poder volver a crear las DLL de MFC (que no tiene la fuente o la versión correcta del IDE) puede crear un COM DLL "contenedor" en MFC o C/C++ sin formato que importaría las DLL de MFC de manera estándar, antes de COM y luego expondrá los objetos y métodos que necesita.
Muchas gracias por la información. El problema para mí es que no puedo agregar una referencia al dll de MFC que creé como se menciona en "Cómo empezar tutorial". Dice que el dll no es un componente COM válido. – Harsha
Ah, está bien. En ese caso, debe reconstruir los archivos DLL de MFC y hacerlos utilizables por COM, si esto significa que debe activar el indicador de Automatización para la compilación (han pasado muchos años desde que MFC para mí). Cuando reconstruya sus archivos DLL de MFC, tendrá COM- interfaces accesibles listas para usar en .NET –
@Harsha: agregué algunas informaciones de COM Automation en el cuerpo de la respuesta original. Eche otro vistazo. –