Click here to Skip to main content
11,705,212 members (40,514 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 Sergey Alexandrovich Kryukov 525
1 OriginalGriff 244
2 CPallini 82
3 ppolymorphe 76
4 Inimicos 60
0 OriginalGriff 8,988
1 Sergey Alexandrovich Kryukov 8,272
2 CPallini 5,189
3 Maciej Los 4,726
4 Mika Wendelius 3,606

Advertise | Privacy | Mobile
Web04 | 2.8.150819.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