Я пытаюсь получить мой проект 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"\\*" );
#Define, который вы используете, даже если он работал для вашего компилятора, является неполным.
Во-первых, используйте символический символ препроцессора. Во-вторых, определите _T (x) как для Unicode, так и для MBCS и для сборки.
#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.
L ##a
работает. Вы должны сделать ответ, чтобы я мог принять