创建LPCTSTR转换操作符



尝试为我的类创建LPCTSTR转换操作符:

AuthData::operator LPCTSTR() const
{
    const char* k = "aaaa";
    return k;
}

错误:返回值类型不匹配函数类型

为什么不匹配?

如果Unicode字符集已启用,则LPCTSTR类型为const wchar_t *.

@Edit你可以在这里阅读这些类型:https://softwareengineering.stackexchange.com/a/194768

  1. 在多字节项目中,LPCTSTR被定义为LPCSTR,它是CONST CHAR*,所以你的代码应该编译(如果它实际上是非unicode)。

  2. 永远不要把TCHARs和字符混在一起!至少——不是没有皈依。您的声明实际上暗示了TCHAR被定义为char,那么您为什么要向读者暗示您知道TCHAR(既然您不知道)?

最新更新