创建LPCTSTR转换运算符

时间:2015-09-15 16:52:04

标签: visual-c++

尝试为我的班级创建LPCTSTR转换运算符:

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

错误:返回值类型与函数类型

不匹配

为什么它不匹配?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

  1. 在多字节项目中,LPCTSTR定义为LPCSTR,即CONST CHAR *,因此您的代码应该编译(如果它实际上是非Unicode)。

  2. 永远不要将TCHAR与字符混合!至少 - 不是没有转换。你的声明实际上意味着TCHAR被定义为char,那你为什么要向读者建议你是TCHAR-aware(因为你不是)?