首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建LPOLESTR类型的变量或常量?

如何创建LPOLESTR类型的变量或常量?
EN

Stack Overflow用户
提问于 2018-07-04 10:36:54
回答 1查看 1.9K关注 0票数 5

我需要LPOLESTR (长指针OLE字符串)作为一个简单函数调用的参数。

根据C++字符串的完整指南,第二部分-字符串包装器类

OLECHAR是一个Unicode字符(wchar_t) LPOLESTR是一串OLECHAR (OLECHAR*)

所以我应该可以这样做:

代码语言:javascript
运行
复制
int demo(LPOLESTR ptName) {
    return 1;
}

int main(){
    
    demo(L"Visible");
}

但是我得到了一个编译错误:

(const Wchar_t8)L“可见” 类型"const wchar_t *“的参数与"LPOLESTR”类型的参数不兼容

或者我会尝试一个变量:

代码语言:javascript
运行
复制
LPOLESTR lVis = L"Visible";

但是我得到了这个编译器错误:

(const Wchar_t8)L“可见” "const wchar_t *“类型的值不能用于初始化"LPOLESTR”类型的实体

我的#include <string>在上面。

这似乎是一件简单的事情,但我整个上午都在谷歌上搜索,却找不到答案。如何在C++中创建LPOLESTR类型的变量或常量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-04 10:41:44

您遇到的问题是,LPOLESTRwchar_t*typedef

编译器将不允许您在没有显式const wchar_t*的情况下将wchar_t*转换为const_cast

使用替代类型的LPCOLESTR编写

代码语言:javascript
运行
复制
LPCOLESTR lVis = L"Visible";

将修复即时编译错误,就像Windows程序员更喜欢的那样。

一般来说,使用const_cast是不可取的,但是如果函数文档声明它不试图修改传递给它的数据,那么您就可以不使用它了。

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

https://stackoverflow.com/questions/51171664

复制
相关文章

相似问题

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