Bonjour à tous,
J'essaye d'accéder à des fonctons d'une Dll et j'ai une erreur de compilation de visual C++ :
Module:
File: i386\chkesp.c
Line: 42
The value of ESP was not properly saved across a function call.Voiçi un bout de mon code qui pemet d'accéder à la DLL:
#include "stdafx.h"
#include <windows.h>
typedef void /*_stdcall*/ (*oupfuncPtr)(short PortAddress, short data);
typedef short /*_stdcall*/ (*inpfuncPtr)(short PortAddress);
oupfuncPtr _Out32;
inpfuncPtr Inp32;
int Reset(void)
{
HINSTANCE hInstLibrary = LoadLibrary("inpout32.dll");
if (hInstLibrary == NULL) {
FreeLibrary(hInstLibrary);
return 1; //pb de chargement de la Dll
}
_Out32 = (oupfuncPtr) GetProcAddress(hInstLibrary, "Out32");
Inp32 = (inpfuncPtr) GetProcAddress(hInstLibrary, "Inp32");
if ((_Out32 == NULL) || (Inp32 == NULL)) {
FreeLibrary(hInstLibrary);
}
//_Out32(78,11);
// ça plante ici Inp32(0x34);
// ça plante ici}
Est-ce quelqu'un d'entre vous pourquoi j'ai cette erreur ?
En vous remerciant par avance pour vos réponses.
Ps:
J'utilise VC++ 6.0 sous XP.
Le code du dessus est dans un source portant l'extension .c (et non pas .cpp).