Appel dynamique de fonctions
:salut:
Je me pose une question, pas très compliqué, mais qui me tient en echec depuis plusieurs heures ( voir jours :( ).
Je voudrais appeller des fonction avec en quelque sortes une méthode universelle ( quoiqu'elle changerait en fonction de la convention d'appel ).
Par exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
typedef void * (WINAPI *GENERIC_FUNC)(...);
int GENERIC_MSGBOX(HWND Parent,LPCTSTR Text,LPCTSTR Title,DWORD params)
{
HMODULE h = LoadLibrary("user32.dll");
GENERIC_FUNC func = (GENERIC_FUNC)GetProcAddress(h,"MessageBoxA");
void * resV = ((*func)(Parent,Text,Title,params));
// j'ai bien la boite de méssage correcte, mais après j'ai une érreur m'indiquant que le registre ( eax je crois ) n'est pas valide alors comment faire ?
int res = 0;
memcpy(&res,resV,sizeof(int));
func = NULL;
return res;
}
Appel :
GENERIC_MSGBOX(0,"Ceci test un test","Holà",MB_YESNO); |
Une idée ?
Je me demandais aussi s'il y avait un moyen d'ajouter, mais vraiment de manière absolument dynamique chaque paramètre c-à-d du genre
Code:
1 2 3 4
|
Add(UnParametre);
Add(BenAutreChose);
Call(ParamList,&Func); |
je rêve ou c'est possible ?