首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将char *转换为const OLECHAR *以便在SYSALLOCSTRING()中使用?

如何将char *转换为const OLECHAR *以便在SYSALLOCSTRING()中使用?
EN

Stack Overflow用户
提问于 2016-04-11 15:22:13
回答 3查看 2.4K关注 0票数 2

请告诉我如何在SysAllocString()中使用像char *xyz这样的字符串,它以OLECHAR const *为参数

EN

回答 3

Stack Overflow用户

发布于 2016-04-11 15:48:31

要将char*转换为const OLECHAR*,可以使用宏A2COLE

所以,如果你有一个'char* pChar‘,它应该可以这样做:

代码语言:javascript
运行
复制
const OLECHAR* pOleChar = A2COLE( pChar );
BSTR str = SysAllocString( pOleChar );
// do something with the 'str'
SysFreeString( str ); // need to cleanup the allocated BSTR
票数 1
EN

Stack Overflow用户

发布于 2016-04-11 16:03:33

根据char*的编码方式,您有一些不同的选项:

ANSI是Windows所说的-

  1. ,你可以使用ATL and MFC String Conversion Macros

BSTR foo(const char* s) { return SysAllocString( CA2W (s));// CA2W需要 }

或者你可以使用_bstr_t

BSTR foo(const char* s) { return _bstr_t(s).Detach();}

票数 1
EN

Stack Overflow用户

发布于 2016-04-11 15:54:37

这就像wchar_t一样,这样你就可以简单地调用函数:

代码语言:javascript
运行
复制
 SysAllocString(L"hello");

或者,如果您有wchar_t *,使用mbstowcs_s将其转换为char*。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36542277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档