[Mono-dev] Marshalling wchar_t

Rajesh Gupta Rajesh.Gupta at actividentity.com
Wed Jan 17 20:03:52 EST 2007


Hi,

            I am trying to call a c++ shared library and the specifics
of the call are as follows:

 

On the C++ end, I have a function like so:

 

authenticate(WINID window, struct ModuleAndType *modules[],

            int size, const wchar_t* inToken, wchar_t** outToken)

 

On the C# end, I have the following:

 

[DllImport("AuthController")]

private static extern uint authenticate(

            int hwnd,

            [MarshalAs(UnmanagedType.LPArray)]

            ref ModuleAndType[] modules,

            int size,

            [MarshalAs(UnmanagedType.LPWStr)]

            string inToken,

            [MarshalAs(UnmanagedType.LPWStr)]

            ref string outToken);

 

This works fine under windows, but I am getting junk characters when
running the same code

In Suse Linux 10.0. I have Mono JIT 1.1.13.8 intalled. After initial
searching on the

Internet, I read that it was due to the number of bytes used by wchar_t
in Windows and

Linux. Mono seems to be marshalling it like windows wchar_t even on
Linux and thus the

junk characters. Is there a way I can get wchar_t to work through
marshalling?

 

Thanks in advance for your help,

 

Cheers,

 

Rajesh

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20070118/4e1c5f6c/attachment.html 


More information about the Mono-devel-list mailing list