Principales respuestas
Ayuda, error al compilar con Visual C++ 2005

Pregunta
-
Hola amigos:
Tengo un problema al compilar un programa con Visual C++ 2005, yo no se programar, pero ayudo en lo que puedo traduciendo programas al Español.
Llevo un tiempo traduciendo el desfragmentador JkDefrg (http://www.kessels.com/JkDefrag/index.html), y nunca tube problemas al compilarlo, hasta hoy.
He instalado como siempre el Visual C++ 2005 Express, y el Platform SDK for Windows Server 2003 R2, para compilar en 32 y 64 bits, corregido la ruta a los compiladores en los archivos .bat, que vienen preparados en las fuentes para compilarlos.
La verdad es que ya no se que hacer porque he probado incluso ha hacerlo en las fuentes en ingles porsi era algo que había tocado yo, pero dan el mismo error, os agradecería si alguien me puede ayudar.
me sale este error en 32 bits:
---------------------
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
D:\traducciones\JkDefrag\JkDefrag 3.29\JkDefrag-src-3.29-Es-pre>rem @call "C:\Ar
chivos de programa\Microsoft Platform SDK for Windows Server 2003 R2\SetEnv.Cmd"
/2000 /RETAIL
cl.exe /Gd /c /W3 /nologo /D "NDEBUG" /MT /O2 /GA /GL JkDefrag.cpp
JkDefrag.cpp
JkDefrag.cpp(30) : fatal error C1083: No se puede abrir el archivo incluir: 'win
dows.h': No such file or directory
NMAKE : fatal error U1077: '"C:\Archivos de programa\Microsoft Visual Studio 8\V
C\BIN\cl.exe"' : código devuelto '0x2'
Stop.
Presione una tecla para continuar . . .
--------------------------------
Y esto cuando intento con la de 64 bits:
-----------------------
Targeting Windows Server 2003 X64 RETAIL
cl.exe /Gd /c /W3 /nologo /D "NDEBUG" /MT /O2 /Wp64 /GA /GL /FoJkDefrag6
4.obj JkDefrag.cpp
JkDefrag.cpp
cl.exe /Gd /c /W3 /nologo /D "NDEBUG" /MT /O2 /Wp64 /FoJkDefragLib64.obj
JkDefragLib.cpp
JkDefragLib.cpp
cl.exe /Gd /c /W3 /nologo /D "NDEBUG" /MT /O2 /Wp64 /GA /GL /FoScanNtfs6
4.obj ScanNtfs.cpp
ScanNtfs.cpp
cl.exe /Gd /c /W3 /nologo /D "NDEBUG" /MT /O2 /Wp64 x64glue.cpp
x64glue.cpp
rc -r -fo JkDefrag64.res JkDefrag.rc
link.exe /nologo /INCREMENTAL:NO /OPT:REF /OPT:ICF /LTCG /OUT:JkDefrag64
.exe user32.lib gdi32.lib Shell32.lib Dbghelp.lib bufferoverflowU.lib advapi32.
lib JkDefrag64.obj JkDefragLib64.obj ScanNtfs64.obj x64glue.obj JkDefrag64.res
Creating library JkDefrag64.lib and object JkDefrag64.exp
Generating code
Finished generating code
mt -manifest JkDefrag64.manifest -outputresource:JkDefrag64.exe;#1
Microsoft (R) Manifest Tool version 6.0.4071.0
Copyright (c) Microsoft Corporation 2004.
All rights reserved.
JkDefrag64.manifest:general error c1010070:Failed to load and parse the manifest
. El sistema no puede hallar el archivo especificado.
NMAKE : fatal error U1077: 'mt' : return code '0x1f'
Stop.
Presione una tecla para continuar . . .
--------------------------------------------------- Cambiado Juan Carlos Ruiz [perfil anterior]Moderator miércoles, 15 de abril de 2009 14:59 masivo
- Cambiado Juan Carlos Ruiz [perfil anterior]Moderator miércoles, 15 de abril de 2009 15:00 masivo
Respuestas
-
Hola mira el problema de x86 es que no tienes el archivo de cabecera que se llama windows.h este archivo contiene todas las estructuras necesarias para ensamblar y mostrar una ventana, para solucionarlo busca en tu codigo la palabra windows.h y asegurate que sea llamada de esta forma:
<windows.h>
Si este archivo es llamado de esta otra forma:
"windows.h" //Se escribe con comillas
intenta cambiando a la primera forma ahora si ya provaste con las dos formas y sigue con el error busca el archivo en las carpetas include de tu SDK puedes ponerle buscar en mi pc windows.h si no encuentra el archivo deveras reinstalar las librerias esto es atraves de la reinstalacion de tu paquete de SDK, ahora si si encontraste el archivo copialo y pegalo en la carpeta include de la ruta de instalacion de tu vc++ y llamalo en tu codigo con la primera forma, ahora tambien lo que puedes hacer es ver la ruta completa del archivo windows.h y escribirla en el codigo asi:
"C:\ejemplo\ejemplo\windows.h" //Se escribe con comillas
Una vez restaurando este archivo podras continuar
El problema del de x64 es el mismo que del primero solo que aqui es con el archivo del manifiesto y este se encuentra en tu codigo (por lo comun) o buscalo en el equipo no reconozco que hace ese archivo ya que no lo he usado pero el problema lo resuelves recuperando el archivo, si se trata de un archivo de el SDK solo reinstala el SDK y listo pero si se trata de codigo privado se tendra que volver a desarroyar checalo!!!
Ahora cheka lo siguiente:
link.exe /nologo /INCREMENTAL:NO /OPT:REF /OPT:ICF /LTCG /OUT:JkDefrag64
.exe user32.lib gdi32.lib Shell32.lib Dbghelp.lib bufferoverflowU.lib advapi32.
lib JkDefrag64.obj JkDefragLib64.obj ScanNtfs64.obj x64glue.obj JkDefrag64.res
Creating library JkDefrag64.lib and object JkDefrag64.exp
Generating code
Finished generating code
mt -manifest JkDefrag64.manifest -outputresource:JkDefrag64.exe;#1En este pedaso que pones me esta diciendo que tienes desactivado el modo incremental tal vez sea tu proposito dejarlo haci pero si no lo es talvez de derive de aqui el error ya que este modo construye codigo ve a propiedades de proyecto y en la rama general buscas el incremental build y le pones en default o si y lo ejecutas
Hay cuentas como te fue Saludos!!!
- Marcado como respuesta Juan Carlos Ruiz [perfil anterior]Moderator miércoles, 15 de abril de 2009 14:58