假如現在有一個類型為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類的重載函數!