宏函数 _T() 导致编译器错误
Macro Function _T() Causes Compiler Error
我正在尝试让我的 Win32 C++ 项目在开发C++中编译。该项目最初是在Visual Studio C++ 2010中创建的,因此它使用了许多Unicode宏函数,例如_tcscmp
。 _tcscat
,最重要的是_T
.
我正在尝试让我的项目在 Dev C++ 中编译(为什么?这是一个很长的故事,但有必要)。所以我试图定义宏函数_T
但是当使用此宏函数时,我收到编译器错误:'La' undeclared (first use this function)
关于我的宏功能_T
出了问题的任何想法?
#if IS_DEVCPLUSPLUS > 0
#undef _T
#define _T(a) La
#endif
// Compile error occurs on below line: "'La' undeclared (first use this function)"
_tcscat( fileName, _T("\*") );
// The end result should be
_tcscat( fileName, L"\*" );
您正在使用的 #define,即使它适用于您的编译器,也是不完整的。
首先,使用令牌粘贴预处理器符号。其次,为 Unicode 和 MBCS 和构建定义 _T(x)。
#if defined (UNICODE) || defined (_UNICODE)
typedef wchar_t TCHAR
#define _T(a) L##a
#else
typedef char TCHAR
#define _T(a) a
#endif
#define TEXT(x) _T(x)
这应该使您接近(如果不是完整的_T/文本宏集)。
相关文章:
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++,我收到一个无法理解的编译器错误
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 重载方法的方式会在使用临时调用时生成编译器错误
- 尝试使用继承和模板实现CRTP.Visual Studio正在生成编译器错误
- 编译器错误:destuctor 的更宽松的抛出说明符
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- C++ G++ 编译器 - 错误:隐式声明的定义
- 这个失败的测试是将零添加到空指针未定义的行为、编译器错误还是其他什么?
- 模板模板参数和模板别名:编译器错误?
- C++ 编译器错误:P1LinkedList.cpp:145:错误:重载的"to_string(int&)"调用不明确
- 在gcc中意外调用了Const重载.编译器错误或兼容性修复程序
- C1001内部编译器错误是由于矢量初始化(如数组)引起的
- 编译器错误(英特尔并行工作室 2019 与 Visual Studio 社区 2019)
- 如何在C++中克服此 C4430 编译器错误?
- 尝试使用 WinBGI 显示文本时出现编译器错误
- 使用typedef'ed返回类型声明友元函数时出现编译器错误
- 如何在类模板的成员函数中正确调用函数对象?正在生成 Visual Studio 编译器错误 C2440
- C++自定义分配器大小参数作为模板参数会引发编译器错误