我有一個C#COM服務器,它被cpp客戶端使用。將字符串從C#傳遞給cpp與COM
其中一個C#方法返回一個字符串。
在cpp中,返回的字符串用Unicode(UTF-16)表示,至少根據內存視圖。
- COM字符串總是這樣嗎?
- 有沒有辦法使用UTF-8呢?
- 我看到一些代碼,其中字符串在cpp和c#之間傳遞爲字節數組。這有什麼好處嗎?
我有一個C#COM服務器,它被cpp客戶端使用。將字符串從C#傳遞給cpp與COM
其中一個C#方法返回一個字符串。
在cpp中,返回的字符串用Unicode(UTF-16)表示,至少根據內存視圖。
[return: MarshalAs(UnmanagedType.LPStr)]
。聽起來像你一樣。他正在從C++調用一個C#COM組件。 – sblom 2010-04-24 23:06:22
@sblom:是的,你的回答讓我感到困惑。 COM在兩端看起來都是一樣的。自動化一直啓用Unicode。 – 2010-04-25 08:00:02
此主題已變成一個沒有吸引力的downvoting巨星與衝突的答案。我建議你在MSDN Library中查找BSTR和SysAllocString的定義,並得出你自己的結論。 – 2010-04-26 16:04:45