这似乎是一个相当简单的问题,但我总是很难查找此函数,因为在涉及char和tchar的引用方面有很多变化。
TCHAR是微软特定的typedef,可以是char或wchar_t(宽字符)。
转换为char取决于实际情况。如果TCHAR实际上是一个char,则可以进行简单的强制转换,但如果它真正是一个wchar_t,则需要使用字符集转换例程。请参见函数MultiByteToWideChar()。
这篇文章中有一些答案,特别是如果你正在寻找跨平台解决方案:
if (sizeof(TCHAR) != sizeof(wchar_t))
{ .... }
这个很酷的地方在于等号两边都是常量,这意味着编译器会处理(并删除)if(),如果它们相等,则删除大括号内的所有内容。
我知道这是一个旧的帖子,但它没有给我“正确”的答案,所以现在我要补充一下。
现在似乎是使用TEXT宏来完成这个操作。msdn上FindFirstFile的示例指出了这一点。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418%28v=vs.85%29.aspx