【发布时间】:2014-06-22 19:01:54
【问题描述】:
我是 COM 新手。根据http://msdn.microsoft.com/en-us/library/windows/desktop/ms221069(v=vs.85).aspx BSTR 是一个带前缀的字符串。我想知道 BSTR 的目的是什么。在这种情况下我们必须使用 BSTR 而不是字符串类型?如果有人可以举个例子吗? 谢谢
【问题讨论】:
我是 COM 新手。根据http://msdn.microsoft.com/en-us/library/windows/desktop/ms221069(v=vs.85).aspx BSTR 是一个带前缀的字符串。我想知道 BSTR 的目的是什么。在这种情况下我们必须使用 BSTR 而不是字符串类型?如果有人可以举个例子吗? 谢谢
【问题讨论】:
BSTR 在广泛的 API 家族中是 standard string type:
BSTR(基本字符串或二进制字符串)是 COM、自动化和互操作函数使用的字符串数据类型。在将从脚本访问的所有接口中使用 BSTR 数据类型。
你在必要时使用BSTR,尤其是。当您使用的 API 期望您通过 BSTR 时;例如当某些 COM 接口方法需要 BSTR 参数时。当你有选择的时候,你可以使用BSTR 或其他任何东西。
【讨论】:
首先,有时您必须使用 BSTR。例如,如果您调用 COM 方法并且被调用者期望 BSTR,您宁愿不传递任何其他字符串类型 - 否则他们可能会调用 SysStringLen() 并遇到未定义的行为。当 API 说明表明您应该使用 BSTR 时,请使用 BSTR。
BSTR 也有这些有用的功能:
【讨论】: