我有一个非托管C++ DLL,我需要从Windows Mobile C#应用程序调用。将C#字符串传递给Windows Mobile中的非托管C DLL
我有C#包装,它在桌面上很好地工作。我可以从C#桌面程序调用DLL函数并传递字符串,没有任何问题。
但是,当我编译移动平台的lib和包装器时,我在DllImport行中发现错误,表示CharSet.ANSI无法识别。我被允许编写的唯一选项是CharSet.Auto和CharSet.Unicode。
问题是,不管这个设置如何,在C++函数中接收到的字符串都是宽字符串,而不是简单的char *字符串,这正是他们所期望的。
我们可以使用wcstombs()的所有字符串在每个C++函数的开始转换,但我宁愿不修改的lib到这样的程度...
是否有固定的方式C#和C之间的编组与.NET Compact Framework一起工作?
[Social.msdn](http://social.msdn.microsoft.com/Forums/en-US/netfxcompact/thread/4aed0776-638a-4fde-ad61-e2462b39a961)表示没有:( – GSerg 2010-10-19 22:45:09