Hello,

Voilà , j'arrive à lancer ma dll de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
#include <windows.h>
 
void __stdcall CALLBACK M2(char *s) {}
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
HANDLE hD1;
typedef int (__stdcall* lp3) ();
lp3 D1;
hD1 = LoadLibrary("Test.dll");
D1 = (lp3) GetProcAddress((HINSTANCE)hD1, "_DLL@4");
D1(&M2);
return 0;
}
en fait ça fonctionne bien de cette façon mais comme c'est moi qui l'ai fait ça ne me semble pas très orthodoxe surtout le void __stdcall CALLBACK M2(char *s) {}. Ya t'il une autre voie pour faire de D1(&M2); quelque chose qui ressemblerait à ceci : D1(void __stdcall CALLBACK M2(char *s) {}); ?

Deuxième question : savez-vous à quoi correspond le @4 dans D1 = (lp3) GetProcAddress((HINSTANCE)hD1, "_DLL@4"); ? Je sais que _DLL appelle la fonction dans la dll mais je ne sais pas à quoi sert ce @4...

Merci.

Edit Alp : J'ai modifié le titre car il est trop vague --- essaye de choisir un titre plus précis la prochaine fois, pour que les personnes qui auront des problèmes ou questions semblables aux tiens puissent trouver facilement la réponse