Sì, è abbastanza possibile. Devi solo stare attento con i tipi. Molti traducono molto bene, ma alcuni sono bizzarri.
Il nome del concetto che si sta cercando è interoperabilità COM. Vedi qui per un getting started tutorial. Ovviamente, la DLL MFC deve supportare COM per essere accessibile da .NET. È necessario ricostruire le DLL MFC con le interfacce COM appropriate supportate.
Ecco uno MSDN overview of COM Automation completo di collegamenti a progetti di esempio.
E qui è un simple but to-the-point CodeProject sample che dimostra esattamente come le DLL COM possono essere utilizzate dagli assembly .NET.
Grande pinvoke reference here. Per accedere anche alle API native Win32.
Edit: Un'altra idea
Nel caso in cui non è possibile ricostruire le DLL MFC (non si ha l'origine o la versione corretta del IDE) è possibile creare un COM DLL "wrapper" in MFC o raw C/C++ che importerebbe le DLL MFC nel modo standard, pre-COM e quindi esporre gli oggetti ei metodi necessari.
fonte
2010-03-20 04:46:51
Grazie mille per le informazioni. Il problema per me è, non sono in grado di aggiungere riferimento alla dll MFC che ho creato come menzionato in "tutorial introduttivo". Dice, la DLL non è un componente COM valido. – Harsha
Ah, ok. In tal caso, è necessario ricostruire le DLL MFC e renderle COM-utilizzabili, se si pensa che questo significhi attivare il flag di automazione per la build (sono passati molti anni dall'MFC per me.) Quando si ricostruiscono le DLL MFC si avrà COM- interfacce accessibili pronte per l'uso in .NET –
@Harsha: ho aggiunto alcune informazioni di automazione COM nel corpo della risposta originale. Dai un'altra occhiata. –