问题标签 [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 投票
3 回答
207 浏览

com - COM 接口中的 WCHAR 是好事吗?

COM 接口中的 WCHAR 是好事吗?

我一直在互联网上寻找这个问题的答案,但没有任何结果。

基本上应该在 COM 中使用 char* / wchar* 还是应该使用 BSTR 代替?

它是安全的还是取决于它?

在此代码示例中,它的字符串(从随机来源获取的代码):

当谈到 COM 时,我对何时使用所有编组、内存边界等内容感到困惑。

数据缓冲区(字节*)呢?

0 投票
2 回答
596 浏览

c++ - 非 unicode 程序的语言更改 ini 阅读

我有一个非 unicode 应用程序,它使用 unicode 版本的 ini 读取函数,如 GetPrivateProfileSectionW 和 GetPrivateProfileStringW。当“非 unicode 程序的语言”设置为英语时,该程序运行良好。

当我将此设置更改为中文 (PRC) 时,GetPrivateProfileSectionW 和 GetPrivateProfileStringW 函数返回 null。

我必须保持这个设置为中文,因为当为“非 unicode 程序的语言”选择英文时,CComBSTR.LoadString 没有按预期工作,它将中文字符加载到资源 DLL 中作为问号。

有任何想法吗?

谢谢。

0 投票
1 回答
1190 浏览

c++ - c++ dtor释放_bstr_t内存

一个简单的问题,但我不确定它在 C++ 中做了什么。

当我有一个有 _bstr_t 成员的类时。我想知道删除对象时是否释放了成员:

该类A没有 dtor。那么默认的 dtor 是调用类的每个成员的 dtorA吗?

特别是对于 _bstr_t,因为它通过 SysAllocString 分配一个字符串。

谢谢

0 投票
2 回答
2863 浏览

c++ - 将 BSTR 从 C++ DLL 函数传递到 VB6 应用程序

我的 VB6 应用程序中有此代码:

输出是一个列表,FileText 是一个包含文件路径的文本字段。我的 C++ DLL 包含这个函数:

Pathtypedef 的位置在哪里LPCSTR。该论点完美地进入了我的 DLL,但无论我试图传回什么,VB6 应用程序都只显示垃圾。我尝试了几种不同的方法SysAllocStringByteLength,将SysAllocString参数转换为LPCWSTR和其他变体。要么,我只看到字符串的第一个字母,要么只看到带点的 Y,而不是真正的字符串。有谁知道从 C++ 创建和传递有效 BSTR 到 VB6 的真正方法是什么?

0 投票
4 回答
11816 浏览

com - 如何使用 BSTR*

out对于 C++ COM dll 中的接口,我有一个BSTR* 值。我将此返回给 C# .Net 客户端。在我的 C++ 函数中,我必须根据差异条件分配不同的值。

例如:

如果我两次调用 SysAllocSTring 到同一个 BSTR 会发生什么?处理这个问题的最佳方法是什么?

0 投票
1 回答
580 浏览

c++ - VarBstrFromI4 改变程序中其他一些 BSTR 的值

最后一行 VarBstrFromI4 将 index(BSTR) 的值更改为我想要的值,但也将 length(BSTR) 的值更改为 index(BSTR) 的值。我一直在尝试做很多选项,包括带有索引和长度的 SysAllocString,但同样的问题仍然存在。

请帮忙。

0 投票
5 回答
3701 浏览

c# - 为什么 C#/.Net 字符串以长度为前缀并以 null 结尾?

阅读空终止字符串的基本原理是什么?以及一些类似的问题,我发现在 C#/.Net 中,字符串在内部都是以长度为前缀和以空结尾的,就像在BSTR Data Type中一样。

字符串既是长度前缀又是空终止的原因是什么,而不是例如。只有长度前缀?

0 投票
1 回答
267 浏览

winapi - 通过引用传递的 BSTR 是否需要在调用函数中重新分配?

我的问题是,BSTRs 的行为是否正确,我们是否需要在第一次调用后保存newX_x一些新的?BSTRfunctionA

或者functionA它可能是错误地分配/取消分配传递BSTR的 s.

0 投票
2 回答
2766 浏览

string - 如何测试 CComBSTR 是否为空

如何测试 CComBSTR 是否为空字符串?(没有“文本”值,可以是“”或可以为空)

我的想法:

  1. 测试是否CComBSTR::ByteLength()返回 0
  2. 测试是否CComBSTR::GetStreamSize()返回 0
  3. 测试是否CComBSTR::m_str为 NULL
  4. 测试是否CComBSTR::Length()返回 0

哪一个是正确的方法?如果它们都不是,那么正确的方法是什么?

谢谢。

0 投票
2 回答
2376 浏览

vbscript - 将 VBScript 中的字符串传递给需要 BSTR* 的 COM 函数

我在我的 VBScript 中调用了第三方 COM 函数。方法签名如下:

在我的 VBScript 中,以下调用返回类型不匹配:

但是传入字符串文字可以正常工作:

任何想法我需要在 VBScript 方面做什么?