Borland C ++ Builder compilação de erro
-
10-07-2019 - |
Pergunta
Eu estou usando Borland C ++ Builder 6, em um PC XP. Quando eu compilei uma unidade de software que se faça referência ao arquivo crtdbg, recebi as seguintes mensagens de erro:
/* Borland version of Microsoft CRTDBG.H header file
This is used by MFC and ATL.
*/
/*
* C/C++ Run Time Library - Version 11.0
*
* Copyright (c) 1999, 2002 by Borland Software Corporation
* All Rights Reserved.
*
*/
/* $Revision: 9.4.2.1 $ */
#ifndef _INC_CRTDBG
#define _INC_CRTDBG
#ifndef __UTILCLS_H
#include <windows.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Prototypes for internal RTL helper functions: */
void _ErrorMessage(const char *__message);
void _ErrorExit (const char *__message);
#ifdef __cplusplus
}
#endif
/* Asserts */
#if !defined(_DEBUG)
#define _ASSERT(expr) ((void)0)
#define _ASSERTE(expr) ((void)0)
#else /* !defined(_DEBUG) */
#define _ASSERT(a) _ASSERTE(a)
#define _ASSERTE(expr) do { \
if (!(expr) && __ASSERTE_Helper (#expr, __FILE__, __LINE__) == IDCANCEL) \
::DebugBreak(); \
} while (0)
/* _ASSERTE helper routine returns: MB_YES, MB_NO or MB_CANCEL
*/
__inline int __ASSERTE_Helper(bool expr, char *file, int line)
{
TCHAR msg[256*2];
::wsprintf(msg, _T("%s failed - %s/%d"), expr, file, line);
/* throw (msg); */
_ErrorExit(msg);
return 0; /* Never really gets here */
}
#endif /* !defined(_DEBUG) */
#endif /* __UTILCLS_H */
#endif /* _INC_CRTDBG */
[C++ Error] crtdbg.h(52): E2268 Call to undefined function '_T'
[C++ Error] crtdbg.h(52): E2034 Cannot convert 'int' to 'const char *'
[C++ Error] crtdbg.h(52): E2340 Type mismatch in parameter 2 (wanted 'const char *', got 'int')
O que há de errado com ele?
Solução
Você deve adicionar o TCHAR.H incluir (ou um Borland equivalente).
_T () é uma macro que as cordas convertidos de 8 bits em formato de caracteres de largura.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow