我正在从C ++函数调用C#方法。
C#方法应该执行以下操作:
BSTR
并将其返回到输出参数HRESULT
返回给C ++函数我已经实现了如下C#方法:
int Method(out IntPtr output)
{
int status = 0;
...
output = Marshal.StringToBSTR(someString);
...
return status;
}
问题:
out IntPtr
类型?BSTR
?我已尝试列出here列出的几种变体类型,但它们似乎都无效。
答案 0 :(得分:0)
您正在使用COM Callable Wrapper,以解答您的问题:
C#out IntPtr
已映射到COM data types中的void**
。
默认情况下,C#字符串类型在COM中编组为BSTR类型,请检查Default Marshaling for Strings,这样您就可以在C#中使用字符串