C++:将 wchar_t* 转换为 BSTR?

2023-11-22

我正在尝试转换wchar_t * to BSTR.

#include <iostream>
#include <atlstr.h>

using namespace std;

int main()
{
    wchar_t* pwsz = L"foo"; 

    BSTR bstr(pwsz);

    cout << SysStringLen(bstr) << endl;

    getchar();
}

这打印0,这比我希望的要少。进行此转换的正确方法是什么?


您需要使用SysAllocString(然后使用SysFreeString)。

BSTR bstr = SysAllocString(pwsz);

// ...

SysFreeString(bstr);

A BSTR是一个托管字符串,字符串的字符以其长度为前缀。SysAllocString分配正确的存储量并正确设置字符串的长度和内容。随着BSTR正确初始化,SysStringLen应该返回正确的长度。

如果您使用 C++,您可能需要考虑使用 RAII 样式类(甚至是 Microsoft 的_bstr_t)以确保您不会忘记任何SysFreeString calls.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++:将 wchar_t* 转换为 BSTR? 的相关文章

  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • 自动修复 Sonar 发现的问题

    我正在修复一个非常古老的 Java 项目 大约有 8 年历史 中声纳捕获的问题 这是一个巨大的项目 有很多被声纳捕获的错误代码 虽然它们是非常琐碎的修复 但它们有很多 有没有办法自动修复一系列类似的问题 就像我有大约 1200 个 语句应该
  • Kiosk软件指导

    我需要开发一个信息亭系统 唯一的付款方式是信用卡 借记卡 信息亭需要与另一台 PC 联网 例如 如果顾客在自助服务终端上订购了商品 则需要将其发送到另一台电脑 商店员工可以在其中查看订购的商品 以下是我的以下解决方案 选项 1 基于网络的应
  • 没有越狱检测

    我正在尝试制作一个仅适用于越狱 iDevices 的应用程序 我已经有越狱检测代码 UIApplication sharedApplication canOpenURL NSURL URLWithString cydia UIAlertVi
  • WCF 中带有接口类型参数的通用返回类型

    如何从泛型类型参数中返回接口类型OperationContracts在我的 WCF REST 服务中 更具体地说 它适用于一个操作 但当我使用通用添加第二个操作时则不起作用T那是一个接口 我使用 JSON 作为请求和响应格式 向非 WCF
  • simple_salesforce python 中的父子关系查询,从有序字典中提取

    我正在尝试使用以下命令从 salesforce 查询信息simple salesforce包在Python中 问题在于 它将作为父子关系一部分的字段嵌套到有序字典中的有序字典中 我想 从 Opportunity 对象中找到 id 以及与该记
  • 如何在 Android 6.0 (API 23) 中继续使用浏览器书签更改

    在我的应用程序中 我一直在使用其中一些功能 这些功能将作为unknown使用 Android 6 0 时 buildToolsVersion 23 0 1 其功能为 Browser getAllVisitedUrls getContentR
  • 从中心项目启动我的 RecyclerView Horizo​​ntal Carousel

    我正在创建一个水平 RecyclerView 轮播 并从 RecyclerView 的第一个项目开始缩放焦点项目 自定义CenterZoomLayoutManager的代码 public class CenterZoomLayoutMana
  • 计算 Django 模板中两个日期之间的天数

    我有两个日期 想要显示一条消息 例如 距离试用期结束还剩 n 天 在哪里n是两个给定日期之间的天数 在视图内执行此操作是否更好 或者是否有一种快速方法在模板本身内执行此操作 Use 次以来模板标签
  • SQLAlchemy 和标量值[重复]

    这个问题在这里已经有答案了 我有一个关于 SQLAlchemy 的简单问题 是否可以从结果中获取行作为标量而不是元组 换句话说 我想要一个相当于 i 0 for i in self archive query IRTerm term dis
  • NSOrderedSet 和 SwiftUI ForEach

    我正在尝试使用 CoreData 和 SwiftUI 并有两个实体 狗与行 Dog 之间是一对多的关系 public class Dog NSManagedObject Identifiable NSManaged public var n
  • C# 是否可以在调整频率的同时产生恒定的声音?

    是否有可能在 C 中生成恒定的声音并在声音发出时控制其频率 我尝试过这样的事情 for int i 500 i lt 15000 i 1 Console Beep i 500 但由于是同步的 循环会等待每次蜂鸣声结束 所以我尝试了这个 fo
  • TypeScript 中 type[] 和 [type] 的区别

    假设我们有两个接口 interface WithStringArray1 property string interface WithStringArray2 property string 让我们声明这些类型的一些变量 let type1
  • VS Code 扩展 - 如何将 WebviewPanel 添加到侧边栏?

    根据这一页网络视图可以 在侧边栏或面板区域中呈现 这些示例展示了如何呈现为编辑器面板 vscode window createWebviewPanel catCoding Identifies the type of the webview
  • 如何在 PHP 中将数据的十六进制表示形式转换为二进制数据?

    我熟悉php的功能bin2hex 用于将二进制数据转换为其十六进制表示形式 但是 将数据的十六进制表示形式转换回二进制数据的补码函数是什么 例如 foo hello foo bin2hex foo echo foo Displays 686
  • 如何仅将 git 存储库的子目录部署/推送到 Heroku?

    我有一个项目使用Serve并使用 Git 进行版本控制 服务创建一个output包含我想要部署到 Heroku 的静态文件的文件夹 我不想部署 Serve 项目本身 因为 Heroku Cedar 堆栈似乎不太喜欢它 但最重要的是我想利用
  • Windows Phone 8 更改强调色和主题颜色

    我正在为 Windows Phone 8 创建一个应用程序 并且我想更改主题颜色 而不管用户在手机操作系统中设置的主题如何 就像其他应用程序 例如 Skype 执行此操作一样 到目前为止 我只能通过访问 XAML 中的 LayoutRoot
  • 与 C++ 编码标准相关的过早优化和过早悲观化

    赫伯 萨特的C 编码标准说要避免Premature optimization and Premature pessimization 但我觉得两者都在做同样的事情 因此 希望有人帮助澄清这两个概念及其之间的区别 如果你能举出一些例子 对其他
  • const int*、const int * const 和 int const * 之间有什么区别?

    我总是搞乱如何使用const int const int const and int const 正确 是否有一套规则来定义你可以做什么和不能做什么 我想知道在分配 传递给函数等方面所有该做和不该做的事情 向后阅读 由顺时针 螺旋规则 in
  • Flexbox 使一件物品比其他物品大 4 倍

    我正在看这个 Flexbox 备忘单 http www sketchingwithcss com samplechapter cheatsheet html wrapcolumn 这里我们有一个例子 我想让大项目比小项目大 4 倍 而不是大
  • C++:将 wchar_t* 转换为 BSTR?

    我正在尝试转换wchar t to BSTR include