Click here to Skip to main content
11,920,772 members (55,474 online)
Rate this:
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 22:20pm
skydger 18-Oct-12 3:35am
Is it possible, that target systems for your projects differs?
Dávid Kocsis 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 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 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 415
1 phil.o 170
2 Dave Kreskowiak 155
3 KrunalRohit 134
4 F-ES Sitecore 130
0 OriginalGriff 6,778
1 KrunalRohit 4,530
2 Sergey Alexandrovich Kryukov 3,203
3 George Jonsson 2,815
4 Suvendu Shekhar Giri 2,181

Advertise | Privacy | Mobile
Web02 | 2.8.151120.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