none
Ayuda con este error que no se muestra el Form en Visual C++ 2015 RRS feed

  • Pregunta

  • Hola:

    Tanto en Visual Express y Community de C++ 2015 me da este error.

    Ocurre cuando agrego un nuevo elemento en UI, luego Windows Form. He desinstalado e instalado de nuevo varias veces llevándome mucho tiempo y sigue igual.

    ¿Alguna idea?

    Saludos.


    http://electronica-pic.blogspot.com

    jueves, 12 de noviembre de 2015 4:20

Respuestas

  • Hola:

    Encontré la soluc8ión y ni me había dado cuenta, ejejjeje. Así que me respondo a mi mismo.

    https://www.youtube.com/watch?v=AP8Tz9RfbxE

    #include "MyForm.h"
    
    using namespace System;
    using namespace System::Windows::Forms;
    
    [STAThread]
    void main(array<String^>^ args)
    {
    	Application::EnableVisualStyles();
    	Application::SetCompatibleTextRenderingDefault(false);
    	Project1::MyForm form;
    	Application::Run(%form);
    }

    Gracias a los demás por intentar ayudarme.


    http://electronica-pic.blogspot.com

    • Marcado como respuesta Metaconta lunes, 16 de noviembre de 2015 7:41
    lunes, 16 de noviembre de 2015 7:41

Todas las respuestas

  • Puede ser un problema del Framewrok que no lo tienes referenciado?
    jueves, 12 de noviembre de 2015 9:13
  • Hola:

    Con la versión  2013 no me pasa nada de esto.

    ¿Cómo puedo saber si está referenciada?

    A lo mejor por instalar Visual Studio 2015 express, más el Community tendrá problemas.

    Saludos.


    http://electronica-pic.blogspot.com

    jueves, 12 de noviembre de 2015 13:35
  • Puede ser, aunque es extraño si el proyecto es nuevo, no obstante probaría a desinstalar ambos e instalar community, el express viene muy "capado"
    jueves, 12 de noviembre de 2015 15:17
  • Hola:

    Desinstalé las dos Visual Studio 2015 hasta las tripas. Ahora solo instalé el Community y sigue igual en cualquier versión.

    Errores es:

    en Microsoft.VisualStudio.Designer.Interfaces.IVSMDCodeDomProvider.get_CodeDomProvider()
    en Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_Provider()
    en Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_CompileUnit()
    en Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
    en Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)

    https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=ES-ES&k=k%28DTELErrorList%29;k%28TargetFrameworkMoniker-.NETFramework

    Ahora me salta este error.

    https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=ES-ES&k=k%28LNK1561%29;k%28TargetFrameworkMoniker-.NETFramework

    Por cierto, dices que Visual Studio Express 2015 extá capado. ¿Qué tiene el Community que todo el mundo me lo recomienda?

    Saludos.


    http://electronica-pic.blogspot.com


    • Editado Metaconta jueves, 12 de noviembre de 2015 18:34
    jueves, 12 de noviembre de 2015 18:02
  • herramientas -> opciones -> editor de texto-> C++ -> avanzadas-> "deshabilitar base de datos"
    viernes, 13 de noviembre de 2015 8:39
  • herramientas -> opciones -> editor de texto-> C++ -> avanzadas-> "deshabilitar base de datos"

    Hola:

    He desinstalado todo y volver a instalar el Community me sigue dando el mismo problema. He rebizado lo que dices y está en false.

    ¿Alguna otra idea?

    Saludos.

    Eddito:

    He instalado desde cero, todo completo el Community 2015 y sigue con el mismo problema de siempre.

    El mensaje del error dice.

    El dato necesario para completar esta operación no está disponible todavía. (Excepción de HRESULT: 0x8000000A)   

    ¿Alguien entiendo esto?

    Saludos.

    • Editado Metaconta sábado, 14 de noviembre de 2015 9:31
    viernes, 13 de noviembre de 2015 22:01
  • Hola:

    Siguiendo investigando y sin éxito, hay que poner esta configuración también que no había mensionado.

    Luego le puse como nombre main, en Avanzadas --> Punto de entrada como indica abajo.

    Al pulsar F5 para compilar me salen estos do smensajes que no se interpretarlos.

    Error de las herramientas del vinculador LNK1120

    número externos sin resolver

    LNK2001, que precede a este mensaje de error (uno por cada externo sin resolver).

    Error de las herramientas del vinculador LNK2001

    símbolo externo "símbolo" sin resolver

    El código hace referencia a algo (como una función, variable o etiqueta) que el vinculador no encuentra en las bibliotecas y archivos objeto.

    LNK1120.

    Causas posibles

      • Esto produce el error LNK2001.

        Para resolver este error, agregue msvcrt.lib y msvcmrt.lib a la propiedad Dependencias adicionales del vinculador. /Zl (Omitir nombres de biblioteca predeterminada) y Cómo: Abrir páginas de propiedades del proyecto.

      • Lo que el código pide no existe (el símbolo está mal escrito o no sigue bien las mayúsculas o minúsculas, por ejemplo).

      • El código pide algo equivocado (se utilizan versiones mezcladas de las bibliotecas, unas de una versión del producto y otras de otra versión).

      Causas específicas

      Problemas de código

      • LNK2019 para obtener información sobre cómo resolverlo.

      • La definición de la plantilla de miembro está fuera de la clase. En Visual C++, las plantillas de miembro deben definirse por completo en su clase envolvente. Vea el artículo de KB Q239436 para obtener más información sobre LNK2001 y las plantillas de miembro.

      • Si no coinciden las mayúsculas o minúsculas en el código o en el archivo de definición de módulos (.def), se puede generar el error LNK2001. inclusión de funciones en línea, pero defina las funciones en un archivo .cpp en lugar de en el archivo de encabezado, puede generar el error LNK2001.

      • /Tp y /Tc hacen que el compilador compile los archivos como C++ o C respectivamente, independientemente de la extensión del nombre de archivo. Estas opciones pueden dar lugar a nombres de función diferentes de lo esperado.

      • Intentar hacer referencia a funciones o datos que no poseen vinculación externa puede generar el error LNK2001. cuerpo de función o variable no encontrados pueden generar el error LNK2001. Llamar a una función con tipos de parámetros que no coinciden con los de la declaración de función puede generar el error LNK2001. Decoración de nombres incorpora los parámetros de una función en el nombre de función representativo final.

      • Los prototipos incorrectamente incluidos, que hacen que el compilador espere un cuerpo de función no disponible, pueden generar el error LNK2001. incluir la implementación de la función de esa clase puede generar el error LNK2001.

      • Intentar llamar a una función virtual pura desde el constructor o destructor de una clase base abstracta puede generar el error LNK2001. Una función virtual pura no tiene implementación de clase base.

      • una variable local) fuera del ámbito de esa función puede generar el error LNK2001.

      • Al generar una versión de lanzamiento de un proyecto ATL, el compilador indica que se requiere código de inicio de la biblioteca CRT. Para resolver el problema, siga uno de los procedimientos siguientes:

        • página de propiedades Valores de configuración para obtener más información.

        • Si es posible, quite las llamadas a funciones CRT que requieren código de inicio CRT. En su lugar use sus equivalentes Win32. Entre las funciones conocidas que requieren código de inicio CRT se hallan algunas de las funciones de cadena y punto flotante.

      Problemas de compilación y vinculación

      • Falta una referencia a una biblioteca (.LIB) o un archivo objeto (.OBJ) en el proyecto. Archivos .lib como entrada del vinculador para obtener más información.

      • /NODEFAULTLIB o /Zl, las bibliotecas que contienen el código necesario no se vincularán en el proyecto a menos que las haya incluido explícitamente. (Al compilar con /clr o /clr:pure, verá una referencia a .cctor; vea Inicialización de ensamblados mixtos para obtener más información.)

      • /ENTRY. Resumen de la programación con Unicode.

        Vea los siguientes artículos de Knowledge Base, situados en MSDN Library, para obtener más información. Q125750   "PRB: Error LNK2001: '_WinMain@16': Unresolved External Symbol"

      • Q131204   "PRB: Wrong Project Selection Causes LNK2001 on _WinMain@16"

      • Q100639   "Unicode Support in the Microsoft Foundation Class Library"

      • Q291952    "PRB: Link Error LNK2001: Unresolved External Symbol _main"

    • /MT) provoca el error LNK2001 en _beginthread, _beginthreadex, _endthread y _endthreadex. Vea el siguiente artículo de Knowledge Base para obtener más información:

      • Q126646 "PRB: Error Msg: LNK2001 on __beginthreadex and __endthreadex"

      • Q128641 "INFO: /Mx Compiler Options and the LIBC, LIBCMT, MSVCRT Libs"

      • Q166504 "PRB: MFC and CRT Must Match in debug/release and static/dynamic"

    • Si se intenta vincular con MSVCxx.lib al compilar sin /MD, no siempre se obtendrá LNK2001, pero probablemente habrá otros problemas.

    • Vincular con las bibliotecas de modo de lanzamiento al compilar una versión de depuración de una aplicación puede causar LNK2001. Vincular una compilación de modo de lanzamiento con las bibliotecas de depuración también causará problemas similares.

    • Mezclar versiones de las bibliotecas de Microsoft y productos de compiladores puede resultar problemático. Las bibliotecas de una nueva versión del compilador pueden contener nuevos símbolos que no se encuentren en las bibliotecas incluidas en versiones anteriores. Puede resultar conveniente cambiar el orden de los directorios en la ruta de búsqueda, o cambiarlos para que apunten a la versión actual.

      El cuadro de diálogo Herramientas | Opciones | Proyectos | Directorios de VC++, en la selección de archivos de la biblioteca, permite cambiar el orden de búsqueda. La carpeta Vinculador del cuadro de diálogo Páginas de propiedades del proyecto también puede contener rutas de acceso obsoletas.

      Este problema puede aparecer al instalar un nuevo SDK (quizás en una ubicación diferente), y si el orden de búsqueda no se actualiza para que apunte a la nueva ubicación. Normalmente, se debe colocar la ruta de acceso a los directorios de inclusión y de bibliotecas de los nuevos SDK delante de la ubicación predeterminada de Visual C++. Asimismo, un proyecto que contenga rutas de acceso incrustadas puede continuar señalando a rutas antiguas que son válidas pero obsoletas en lo que se refiere a las nuevas funciones que aporta la nueva versión, la cual se halla instalada en otra ubicación.

    • denominación de C++ entre fabricantes de compiladores, ni entre versiones diferentes de un mismo compilador. Por ello, vincular archivos objeto compilados con otros compiladores puede no producir el mismo esquema de denominación y causar por tanto el error LNK2001.

    • Mezclar opciones de compilación en línea y no en línea en módulos diferentes puede causar el error LNK2001. establecer un valor de 2 o superior, y asegurarse también de que se está usando la opción del compilador /Ob1 u /Ob2.

    • Omitir la opción de LINK /NOENTRY al crear una DLL sólo de recursos causará el error LNK2001.

    • Usar valores incorrectos de /SUBSYSTEM o /ENTRY puede generar el error LNK2001. /SUBSYSTEM y /ENTRY.

      Problemas de exportación

      • Al convertir una aplicación de 16 a 32 ó 64 bits, se puede generar el error LNK2001. Esto se diferencia de la sintaxis para 16 bits, donde deben ir con subrayados (decoradas). EXPORTS de los archivos de definición de módulos.

      • Cualquier exportación incluida en el archivo .def y no hallada causará el error LNK2001. Ello puede deberse a que no existe, está escrito incorrectamente o usa nombres representativos de C++ (los archivos .def no toman nombres representativos).

      Interpretar los resultados

      Cuando un símbolo está sin resolver, se puede obtener información sobre la función a partir de las siguientes directrices:

      En plataformas x86, la convención de decoración de llamadas para los nombres compilados en C, o para los nombres extern "C" en C++, es la siguiente:

      __cdecl

      La función tiene un prefijo de subrayado (_).

      __stdcall

      La función tiene un prefijo de subrayado (_) y un sufijo @ seguido del tamaño alineado con DWORD de los parámetros de la pila.

      __fastcall

      La función tiene un prefijo @ y un sufijo @ seguido del tamaño alineado con DWORD de los parámetros de la pila.

      Use undname.exe para obtener la forma no decorada de un nombre representativo.

      Creación de nombres representativos.

    Con estas informaciones, espero que alguien pueda ayudarme. Lo único que se me ocurrre es formatear todo desde cero. Uso Windows 7 de 64 bits.

    Saludos.


    http://electronica-pic.blogspot.com

    domingo, 15 de noviembre de 2015 6:34
  • Hola:

    Encontré la soluc8ión y ni me había dado cuenta, ejejjeje. Así que me respondo a mi mismo.

    https://www.youtube.com/watch?v=AP8Tz9RfbxE

    #include "MyForm.h"
    
    using namespace System;
    using namespace System::Windows::Forms;
    
    [STAThread]
    void main(array<String^>^ args)
    {
    	Application::EnableVisualStyles();
    	Application::SetCompatibleTextRenderingDefault(false);
    	Project1::MyForm form;
    	Application::Run(%form);
    }

    Gracias a los demás por intentar ayudarme.


    http://electronica-pic.blogspot.com

    • Marcado como respuesta Metaconta lunes, 16 de noviembre de 2015 7:41
    lunes, 16 de noviembre de 2015 7:41