我正在从事一个需要将 C++ 代码转换为 C# 的项目。
我在代码中遇到了 _bstr_t
我想知道 C# 中的等效项。
最佳答案
_bstr_t
class是 BSTR
type 的包装器.这是 OLE Automation 中的一个字符串这是跨语言标准化的。
也就是说,.NET 中的等效类型是 System.String
.
关键是在与之交互时(或在 .NET 代码中为 COM 互操作定义接口(interface)),您需要使用 MarshalAsAttribute
值来自 UnmanagedType
enumeration UnmanagedType.BStr
,像这样:
// This is on an interface that is in unmanaged code.
public void DoSomething([MarshalAs(UnmanagedType.BStr] string myString);
请注意,如果您的类实际上在 COM 接口(interface)中公开了 _bstr_t
,那么您应该将其更改为公开 BSTR
; _bstr_t
是一个帮助程序类,并不意味着跨接口(interface)边界公开。 BSTR
用于此,_bstr_t
上的方法用于处理 BSTR
实例的分配和使用。
关于c# - C#中_bstr_t的等价物是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13256440/