Bonjour,
mon programme de chargement de dll plante mais je ne vois pas pourquoi.
Voici le code :
et le code de la dll:
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
17
18
19
20
21
22
23
24
25
26
27 #include <stdio.h> #include <windows.h> typedef int (__stdcall *MYDLLFUNC)(int, int); int main() { HMODULE hmod; MYDLLFUNC dllfunc; hmod = LoadLibrary(TEXT("myDll.dll")); if (hmod) printf("LoadLibrary sucess\n"); else printf("LoadLibrary failure\n"); dllfunc = (MYDLLFUNC)GetProcAddress(hmod,"addition"); if (dllfunc) { int res = dllfunc(15, 12); printf("res = %d\n", res); } if (hmod) FreeLibrary(hmod); getchar(); return 0; }
Il plante sur cette ligne :
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 "stdafx.h" #include "windows.h" BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } extern "C" __declspec(dllexport) int addition(int a,int b) { return a+b; }
L'erreur : "Run-time check failure #0 - The value of ESP was not properly saved across a function call ..."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int res = dllfunc(15, 12);
Merci pour votre aide.
Partager