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#所“拥有”的。