1. 程式人生 > >C++: LPARAM型別轉化為CString型別

C++: LPARAM型別轉化為CString型別

高版本的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類的過載函式!