From: David P. <dpi...@me...> - 2010-02-23 18:57:04
|
My C++ DLL also contains C-mangled names, and my C# wrapper also does not include the prefix "_" and suffix "@d", but somehow it works anyway. I guess the CLR tries "_Name@d" if it can't find "Name" itself. Perhaps something else is wrong. > -----Original Message----- > From: John Heisey [mailto:JRh...@sy...] > Sent: Tuesday, February 23, 2010 10:53 AM > To: 'swi...@li...' > Subject: [Swig-user] Generating CSharp wrappers > > Hi, > > Calling C++ code from CSharp. > > In the Swig generated CPP code a function definition looks like this: > > #ifdef __cplusplus > extern "C" > #endif > SWIGEXPORT void SWIGSTDCALL > SWIGRegisterExceptionCallbacks_CdciControllerInterfaces( > ... > > The SWIGSTDCALL causes MSVC++ to name mangle such that the function > name is prefixed with an underscore and @d is appended where d is the > number of bytes in the argument list. > > In the Swig generated C# code the same function declaration is: > > [DllImport("CDCIApi.dll", > EntryPoint="SWIGRegisterExceptionCallbacks_CdciControllerInterfaces")] > public static extern void > SWIGRegisterExceptionCallbacks_CdciControllerInterfaces( > ExceptionDelegate applicationDelegate, > ... > > The EntryPoint does not contain the mangled name and I don't see > anything that tells the DllImport directive that this function uses the > __stdcall calling convention. The calling C# application displays an > error that it cannot find the function. > > I haven't used this code in a while and I thought that it all worked at > one point. Perhaps not. I don't see anything that has changed to cause > this. > > How is this suppose to work? > > Thank, > J.R. Heisey > > > > ----------------------------------------------------------------------- > ------- > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Swig-user mailing list > Swi...@li... > https://lists.sourceforge.net/lists/listinfo/swig-user |