C++: LPARAM类型转化为CString类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dashumak/article/details/83381216

高版本的VS中消息响应机制十分严格,当传递参数明确要求是LPARAM类型的参数,经常需要将其转化成CString类型的数据
假如现在有一个类型为LPARAM的变量lParam,要将其转化为CString类型,可以:
①使用构造函数
CString str((char*)lParam);
②使用运算符重载
CString str;
str=(char*)lParam;
③使用CString的格式化函数:
CString str;
str.format("%s", (char*)iParam);
④一个行不通的办法!但是仔细一看却和方法②相差无几。
CString str=(char*)lParam;
–拷贝构造函数 (此时会编译不成功。提示:“初始化”: 无法从“char *”转换为“ATL::CStringT<BaseType,StringTraits>”)
原因是:CString类没有可以将char * 型的转化为CString型的拷贝构造函数。然而,CString的operate=有可以将char *型的转化为CString类的重载函数!

猜你喜欢

转载自blog.csdn.net/dashumak/article/details/83381216