Click here to Skip to main content
11,637,176 members (59,766 online)
Rate this: bad
Please Sign up or sign in to vote.
See more: C++/CLI
I've defined a function for a C++/CLI library:
extern "C"
	INT_PTR __cdecl brl_graphics_Graphics(int Width, int Height, int Depth, int Hertz, int Flags);
And this is the function that calls it, it's just a 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));
When I call it from a C# application I get a AccessViolationException, for some reason in the disassembly it doesn't use cdecl calling convention:
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 

Thanks for helping in advance.
Posted 17-Oct-12 21:20pm
skydger at 18-Oct-12 3:35am
Is it possible, that target systems for your projects differs?
Dávid Kocsis at 18-Oct-12 3:46am
For the C++ library it is set to Win32, for the C# it is set to x86. So it is the same as I know.
skydger at 18-Oct-12 4:01am
I think I got the issue. Try to refer this book, chapter 9.
I think it could be useful.
Dávid Kocsis at 18-Oct-12 4:11am
Thanks, I will read it.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 295
1 stibee 288
2 270
3 Sergey Alexandrovich Kryukov 214
4 himanshu agarwal 184
0 OriginalGriff 9,031
1 Sergey Alexandrovich Kryukov 8,513
2 Mika Wendelius 6,922
3 F-ES Sitecore 2,388
4 Suvendu Shekhar Giri 2,320

Advertise | Privacy | Mobile
Web02 | 2.8.150728.1 | Last Updated 18 Oct 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100