第一种方法:先利用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种全部编译通过。