Instalé VS2010 después de un bloqueo de unidad, antes tenía VS2005 y todo estaba bien.error C1189 después de instalar Visual Studio 2010
Ahora, al compilar una aplicación C++ que estaba bien anteriormente, estoy viendo un par de errores que no puedo descifrar.
Error 1 error C1189: #error: Este archivo requiere que _WIN32_WINNT esté #definido al menos en 0x0403. Se recomienda un valor de 0x0501 o superior. C: \ Archivos de programa \ Microsoft Visual Studio 10.0 \ VC \ atlmfc \ include \ atlcore.h 35 1 BIOXGINA
#ifndef __ATLCORE_H__
#define __ATLCORE_H__
#pragma once
#ifdef _ATL_ALL_WARNINGS
#pragma warning(push)
#endif
#pragma warning(disable: 4786) // identifier was truncated in the debug information
#pragma warning(disable: 4127) // constant expression
#include <atldef.h>
#include <windows.h>
#include <ole2.h>
#include <limits.h>
#include <tchar.h>
#include <mbstring.h>
#include <atlchecked.h>
#include <atlsimpcoll.h>
34. #if _WIN32_WINNT < 0x0403
35. #error This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.
36. #endif
#pragma pack(push,_ATL_PACKING)
namespace ATL
{
/////////////////////////////////////////////////////////////////////////////
// Verify that a null-terminated string points to valid memory
inline BOOL AtlIsValidString(
_In_z_count_(nMaxLength) LPCWSTR psz,
_In_ size_t nMaxLength = INT_MAX)
{
(nMaxLength);
return (psz != NULL);
}
Si comento hacia fuera las líneas anteriores, que a continuación, obtener
de error El identificador C3861 no se encuentra en la línea 111 a continuación.
Supongo que solo recibo esto porque comento las líneas de arriba?
HRESULT Init() throw()
{
HRESULT hRes = S_OK;
111. if (!InitializeCriticalSectionAndSpinCount(&m_sec, 0))
{
hRes = HRESULT_FROM_WIN32(GetLastError());
}
return hRes;
}
Agradeceria cualquier ayuda sobre esto. Realmente no desea volver a instalar 2005.
En lugar de cambiar el archivo del sistema stdafx.h, opté por configurar estos en las definiciones del preprocesador para mis proyectos. Mucho más portátil que retocar los archivos .h del sistema. –
@PeteMagsig: 'stdafx.h' no es un archivo de sistema. Es un código que el asistente de Nuevo Proyecto coloca automáticamente en su proyecto, para ser un punto focal para los encabezados precompilados, pero no se comparte con ninguna otra cosa. (El nombre de archivo es terrible) –
@BenVoigt: Gracias por señalarlo. No me di cuenta de que de ahí venía stdafx.h Todavía estoy a favor de usar definiciones de preprocesador en la configuración del compilador. –