C++ TCHAR []到字符串

hik*_*ume 1 c++ string tchar

我有这个方法接收一个TCHAR szFileName[]变量的路径,其中包含类似的东西C:\app\...\Failed\

我想对它进行排序,以便我可以验证该路径上最后一个文件夹的名称是否实际上是"失败"

我认为使用这样的东西会起作用:

std::wstring Path = szFileName;

string dirpath2;
dirpath2 = Path.substr(0,5); 
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

错误6错误C2679:二进制'=':找不到运算符,它采用类型为'std :: basic_string <_Elem,_Traits,_Ax>'的右手操作数(或者没有可接受的转换)

毋庸置疑,我对C++很新,而且我一直在寻找答案,但我没有运气,所以任何帮助都会受到赞赏:)

Kon*_*lph 7

您要么一直使用wstring(宽字符变体)或string("正常"变体).

因为你得到一个TCHAR(可以是wchar_t或者char,取决于编译器标志),要使用的适当类型是a tstring,但是不存在.但是,您可以为其定义typedef:

typedef std::basic_string<TCHAR> tstring;
Run Code Online (Sandbox Code Playgroud)

现在,您可以始终tstring对所有操作使用相同的字符串类型.