none
Ayuda, error al compilar con Visual C++ 2005 RRS feed

  • 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 . . .
    --------------------------------------------------


    viernes, 23 de noviembre de 2007 14:35

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;#1

    En 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!!!

    lunes, 17 de diciembre de 2007 8:06