Bonjour,

Dans le cadre d'un de mes projets, je vais �tre amen� � utiliser les MFCs. Je souhaite d'abord les encapsuler dans des classes g�n�riques de ma conception afin de pouvoir proposer proprement et simplement d'autres impl�mentations avec des APIs diff�rentes si le besoin s'en fait sentir (comme le fait la SFML par exemple pour les diff�rents syst�mes qu'elle supporte, une m�me interface pour les impl�mentations Win/Mac/Unix).

Je me demande si les MFCs sont l'id�al pour �a. En effet, il s'agit d�j� d'une encapsulation de l'API Win32, et son architecture m'impose de nombreuses contraintes qui les rendent difficiles � impl�menter sous une interface g�n�rique (� cause des relations entres les diverses classes qui les composent entre autres). Mon plus gros probl�me est que les MFCs imposent d'utiliser une instance d�riv�e de la classe CWinAppEx, qui sert alors de point d'entr�e au programme. J'ai donc encapsul� cette classe elle aussi, mais �a ne fonctionne pas car pour respecter le sch�ma usuel des MFCs, il faudrait que je d�clare une instance de CWinAppEx dans mon programme, en dehors de mon encapsulation, ce que je ne peux faire. En effet, je ne veux pas qu'il y ait du code MFC dans mon programme, ce code doit imp�rativement �tre isol� dans une librairie � part r�serv�e aux MFCs. Si je cr�� cette instance dans ma libraire MFC, j'ai droit � un "error LNK1561: entry point must be defined" � la compilation, et si j'utilise mon propre main dans le programme principal, je me tape une exception.

Y a t-il un moyen de contourner ce probl�me? Ou devrais-je plut�t envisager d'encapsuler l'API Win32 directement au lieu des MFCs?

Autre petite question qui n'a rien � voir, mais que je me permet de poser quand m�me car je ne vais pas ouvrir un nouveau topic pour si peu, quel est le nom exact d'une structure de donn�e statique de ce genre en c++? N'y a t-il pas un moyen plus propre en C++ d'�crire ce genre de chose?

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct Param 
{
	const std::wstring	section;
	const std::wstring	entry;
	const std::wstring	value;
};
 
static Param	param_array[] =
{
	{ L"Display", L"ResX", L"1680" },
	{ L"Display", L"ResY", L"1050" },
	{ L"Display", L"BitDepth", L"32" },
	{ L"", L"", L"" },
};
Merci d'avance.