[英]Pass String in C++ COM dll from C# function
dll功能接口;
我認為在dll函數中,數據類型為BSTR
CustomConvert(BSTR dataStr)
{........}
dll介面:
CustomConvert(IntPtr dataStr) //Returns strings
我需要傳遞的數據是這樣的:
string strTemp = "pŒ®í§…Êtf°B²bßZÃQô"; // something like this
obj.CustomConvert(strTemp);
但我收到異常“字符串”無法轉換為“ System.IntPtr”; 在互聯網上搜索后,我發現了類似的東西。
obj.CustomConvert(System.Runtime.InteropServices.Marshal.StringToBSTR(strTemp));
但是System.Runtime.InteropServices.Marshal.StringToBSTR(strTemp)將strTemp轉換為類似2035295的數字。但是我需要在strTemp中傳遞實際值。
有什么幫助或建議嗎?
要通過BSTR
您可以執行以下操作:
public static extern void CustomConvert([MarshalAs(UnmanagedType.BStr)] string dataStr);
然后不做任何事情直接傳遞string
。
請注意,在CustomConvert
您不必釋放BSTR
,因為它是C#所“擁有”的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.