Bonjour
Il est bien sûr possible de faire une dll en MFC, j'en ai fait plein et je ne vois pas où est le problème. Il suffit de fournir MFC42.dll lors de la distribution de la dll.
Par contre, pour des appels depuis des applications non MFC le plus simple est de fournir une interface en C, c'est à dire d'exporter des fonctions C et pas des classes C++ (utilise extern "C"). J'ai ainsi écrit une dll en MFC qui s'utilise à partir de n'importe quel langage (C, C++, Visual Basic, Java, Delphi, et même Excel) avec 2 niveaux d'interfaçage (C et C++)
Pour ce qui est de l'affichage d'une dialogbox de la dll il faut que tu indiques à ton programme où aller prendre les ressources, c'est à dire dans la dll. La fonction AfxSetResourcehandle est là pour ça.
Regarde ici :
http://cpp.developpez.com/faq/vc/?page=DLL
ed73