第一種方法:先利用CString類提供的operator LPCTSTR轉換函數將CString對象轉換爲一個C風格字符串,然後再轉換成string類型,例如:
std::basic_string<TCHAR> filename((LPCTSTR) file1);
第二種方法:
std::basic_string<TCHAR> filename(file1.GetBuffer(file1.GetLength()));
其實前兩種方法的關鍵就是str::basic_string<TCHAR>。
第三種方法:這種方法也是我剛從網上找的,在VS2008的MFC的工程中編譯通過,在別的地方調試可能要添加相關的頭文件,CT2A 它定義在"atlconv.h"中。
CT2A xx(file1);
filename = xx;
以上三種方法我在VS2008種全部編譯通過。