我有一個非託管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