J'ai défini une fonction pour une bibliothèque C++/CLI :
extern "C"
{
INT_PTR __cdecl brl_graphics_Graphics(int Width, int Height, int Depth, int Hertz, int Flags);
}
Et voici la fonction qui l'appelle, c'est juste un wrapper :
IntPtr BlitzMax::BlitzMax::Graphics(int Width, int Height, int Depth, int Hertz, int Flags)
{
return IntPtr(brl_graphics_Graphics(Width, Height, Depth, Hertz, Flags));
}
Quand je l'appelle depuis une application C#, je reçois une AccessViolationException, pour une raison quelconque dans le désassemblage, il n'utilise pas la convention d'appel cdecl :
push dword ptr [ebp+10h]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
mov ecx,dword ptr [ebp-4]
mov edx,dword ptr [ebp-8]
call FFD595B8