问题标签 [bstr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
196 浏览

c++ - 什么时候可以选择重新分配 `[in,out]` 参数?

如果我有[in,out] BSTR*参数并且我想修改字符串内容但仍保持相同的长度,我可以重复使用它还是需要重新分配/释放并分配BSTR

MSDN 说

对于[in, out]参数,调用者分配内存,方法或属性可以选择性地解除分配和重新分配,调用者最终负责删除内存。

为了更完整,什么时候是可选的?

0 投票
2 回答
198 浏览

memory-management - `[out] BSTR*` 参数的垃圾初始值可以吗?

根据MSDN

对于[out]参数,方法或属性分配内存,调用者负责释放内存。

以下哪些是可以的:

0 投票
1 回答
56 浏览

c++ - 运算符 TYPE () 并获取对象的地址

ATL 类CComBSTR有一个BSTR成员m_str和一个operator BSTR ()返回m_str.

现在,如果一个函数将 aBSTR *作为参数,是否可以传递 a 的地址CComBSTR

编译器没有抱怨,但如果真的没问题,为什么它会起作用?

0 投票
1 回答
1801 浏览

c++ - 如何正确地将_bstr_t重置为`NULL`

在下面的片段中(循环的简化场景)

我期望another.Assign(NULL)的是:

  • SysFreeString()不被称为
  • another设定为NULL
  • ref-count 减为 1
  • originalref count=1现有BSTR内容。

发生了什么:

  • SysFreeString()被称为底层证券BSTRanotheroriginal
  • another设定为NULL
  • original残骸的参考计数2

another.Assign(NULL)似乎解除了 和 的底层证券BSTRoriginal分配another
我们发生了意外的崩溃,因为在编码过程中我认为_bstr_t::Assign()会减少引用计数而不是立即取消分配BSTR.

如何anotherNULL不影响的情况下正确重置original

请在下面找到Assignfrom的实现VC++ 6

0 投票
1 回答
709 浏览

c++ - BSTR bstrRtf = 0xcccccccccccccccc调试时(= CXX0030:错误:无法评估表达式)

我正在使用 IXLMDOMDocument 从流中加载 xml 文件

加载流(包含 xml 内容)后,它会创建一个样式表以ident正确获取内容。上述部分工作没有任何问题。我确信这一点,但在那之后,当 A 转换节点(样式表为bstrRtf)时,如下所示 -

我不知道为什么或如何。它不应该这样做,因为bstrRtf我们有一个非常奇怪的值。我希望它会给出一些错误,但我不知道为什么会这样。

任何人都可以解释它的含义 bstrRtf = 0xcccccccccccccccc <Bad Ptr>吗?什么时候有人会收到这种类型的错误?是什么意思0xcccccccccccccccc <Bad Ptr>

当我将它初始化为零时,错误正在instance->m_bstrRtf = 0x0000000000000000 <Bad Ptr>调试中。并且不工作。但是为什么即使在此之后它仍然返回 S_OK ?

0 投票
0 回答
422 浏览

c++ - _com_util::ConvertStringToBSTR - 访问冲突

我正在调用 COM 服务器的方法并在 _com_util::ConvertStringToBSTR 中随机获取访问冲突错误:

注册报价签名:

更多信息:

我不知道为什么会发生这个错误。如果需要,我可以提供更多信息。

更新:

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
1153 浏览

c++ - 将 BSTR 字符串传递给 _bstr_t 或 CComBSTR 构造函数时访问冲突

我有从 COM 服务器传递的 BSTR 字符串。当我将此字符串放入 _bstr_t(或 CComBSTR)构造函数时,就会发生访问冲突。我检查了这个异常,发现只有当 BSTR 为空(或 null)时才会引发这个异常。

我试图将空的 BSTR 显式放入 _bstr_t 构造函数,这很好用:

但是对于从 COM 服务器传递的 BSTR,这不起作用 - 当字符串为空或 null(或可能已损坏?)时会发生访问冲突异常

我发现这种解决方法效果很好:

但我想知道为什么这不能直接与 _bstr_t 或 CComBSTR 包装器一起使用:

更新:

COM 服务器如何传递 BSTR 字符串:

0 投票
1 回答
506 浏览

c# - 在 c# 和 C++ /CLI 之间传递 _bstr_t

我有点困惑我们是否可以使用 _bstr_t 在 c# 到 C++ 之间传递字符串,反之亦然。

我使用 C++/CLI 作为 C# 和 C++ 之间的中间层。

如果可能的话,还举例说明如何在 C# 端和 C++/CLI 端编组它,因为没有太多关于它的文档

还建议更好的数据类型/机制来传递字符串。

0 投票
1 回答
1605 浏览

c - How to get String from Pointer in VB6

I must call C DLL with VB6.

C Code

My VB Code :

but my VB6 code is not functional.

please any ideas, any proposals or corrections.

please help me, I count on you.

0 投票
0 回答
253 浏览

c++ - 通过多个标签名称打印元素 - msxml - C++ 中的 xml 解析

我正在尝试使用 MSXML 解析 xml 文件,但我想解析特定标签(节点)而不是所有节点。下面两行额外的 xml 解析,给出了所有节点的输出。如果我将 L" " 替换为 L"tag_name" ...我会得到结果,但我想包含更多标签而不仅仅是一个。请帮忙。

//带有要查找的节点名称的变量: BSTR strFindText = L" ";//" " 表示输出每个节点