c++中给LPCSTR赋值

简介: c++中给LPCSTR赋值

1、缘由


最近在看多线程和多进程的操作,使用Windows线程操作API时总会遇到奇奇怪怪的宽字符类型,此文章将持续更新,写一写字符转换相关的内容。




2、LPWSTR赋值


通过转定义可以知道LPWSTR是对WCHAR的重定义:

typedef _Null_terminated_ WCHAR *NWPSTR, *LPWSTR, *PWSTR;

WCHAR的定义如下:

typedef wchar_t WCHAR;    // wc,   16-bit UNICODE character

知道上述之后,自己动手,本想可以丰衣足食,惨遭失败…下述是本人的错误示范:

LPWSTR test1 = const_cast<WCHAR*>(L"mspaint.exe");  //尝试一
LPWSTR test2 = (LPWSTR)(LPCWSTR)L"mspaint.exe";   //尝试二


之后老老实实上网找博客,找到下述通过CString作为中间人进行转化的方法,效果还OK。

CString test3 = L"mspaint.exe";
LPWSTR test4 = (LPWSTR)(LPCWSTR)test3;



相关文章
|
编译器 C++
C++程序中的对象赋值和复制
C++程序中的对象赋值和复制
217 1
|
C++
在C++语言中赋值运算符
在C++语言中赋值运算符
167 0
|
6月前
|
安全 C++
【c++】继承(继承的定义格式、赋值兼容转换、多继承、派生类默认成员函数规则、继承与友元、继承与静态成员)
本文深入探讨了C++中的继承机制,作为面向对象编程(OOP)的核心特性之一。继承通过允许派生类扩展基类的属性和方法,极大促进了代码复用,增强了代码的可维护性和可扩展性。文章详细介绍了继承的基本概念、定义格式、继承方式(public、protected、private)、赋值兼容转换、作用域问题、默认成员函数规则、继承与友元、静态成员、多继承及菱形继承问题,并对比了继承与组合的优缺点。最后总结指出,虽然继承提高了代码灵活性和复用率,但也带来了耦合度高的问题,建议在“has-a”和“is-a”关系同时存在时优先使用组合。
329 6
|
编译器 C++
C++进阶之路:何为运算符重载、赋值运算符重载与前后置++重载(类与对象_中篇)
C++进阶之路:何为运算符重载、赋值运算符重载与前后置++重载(类与对象_中篇)
122 1
|
C++
C++程序中的赋值运算符
C++程序中的赋值运算符
164 2
|
编译器 C语言 C++
从C语言到C++_33(C++11_上)initializer_list+右值引用+完美转发+移动构造/赋值(中)
从C语言到C++_33(C++11_上)initializer_list+右值引用+完美转发+移动构造/赋值
112 1
从C语言到C++_33(C++11_上)initializer_list+右值引用+完美转发+移动构造/赋值(中)
|
C++ 容器
C++之deque容器(构造、赋值、大小、插入与删除、存取、排序)
C++之deque容器(构造、赋值、大小、插入与删除、存取、排序)
183 1
|
C++ 容器
C++字符串string容器(构造、赋值、拼接、查找、替换、比较、存取、插入、删除、子串)
C++字符串string容器(构造、赋值、拼接、查找、替换、比较、存取、插入、删除、子串)
227 1
|
存储 编译器 C++
【C++】:拷贝构造函数和赋值运算符重载
【C++】:拷贝构造函数和赋值运算符重载
162 1
|
存储 安全 C语言
从C语言到C++_33(C++11_上)initializer_list+右值引用+完美转发+移动构造/赋值(上)
从C语言到C++_33(C++11_上)initializer_list+右值引用+完美转发+移动构造/赋值
94 2