C#中_bstr_t的等价物是什么

2 .net c# c++ com-interop

我正在开发一个项目,我需要将C++代码转换为C#.

_bstr_t在代码中遇到了我想知道C#中的等价物.

cas*_*One 8

_bstr_t是为一个包装BSTR类型.这是OLE自动化中的一个字符串,它跨语言标准化.

也就是说,.NET中的等价类型是System.String.

关键是在与它交互时(或者在.NET代码中定义COM互操作的接口)时,你需要使用MarshalAsAttributeUnmanagedType枚举的值UnmanagedType.BStr,如下所示:

// This is on an interface that is in unmanaged code.
public void DoSomething([MarshalAs(UnmanagedType.BStr] string myString);
Run Code Online (Sandbox Code Playgroud)

请注意,如果您的类实际上是_bstr_t在COM接口中公​​开,那么您应该将其更改为公开BSTR; _bstr_t是一个辅助类,不应跨接口边界公开.的BSTR是该和方法_bstr_t是处理的分配和使用BSTR情况.