我试图让我的Win32 C ++项目在Dev 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"\\*" );
答案 0 :(得分:0)
您正在使用的#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 / TEXT宏,这应该会让你接近。