Como faço para criar um aplicativo C ++ / CLI Winforms no VS2012?

Acabei de instalar o Visual Studio 2012 express para Desktop. Não consigo ver nenhum local para criar um aplicativo gráfico com o C ++! Onde esta “Windows Form Application” usado existe no Visual C ++ 2010? Onde estão esses controles de arrastar e soltar? Eu instalei isso porque eu tenho detalhes dizendo isso suporta intellisense GUI ( Visual C ++: não é possível invocar o método de outra class )

Por favor ajude!

É uma dica nada boa que eles querem que você pare de criar aplicativos C ++ / CLI Winforms. O encanamento ainda está em vigor no entanto, pelo menos para VS2012 e VS2013. Isso pode não ser o caso em um futuro.

Você pode transformar um aplicativo de console CLR em um aplicativo Winforms com estas etapas:

  • Comece com Arquivo + Novo + Projeto, nó CLR, Aplicativo de Console CLR
  • Projeto + Adicionar novo item, nó da interface do usuário, formulário do Windows
  • Propriedades do Project +, Linker, System, SubSystem = Windows
  • Propriedades do projeto +, vinculador, avançado, ponto de input = main

Altere o arquivo .cpp pré-gerado para ficar assim:

#include "stdafx.h" #include "MyForm.h" namespace ConsoleApplication45 { // Change this!! using namespace System; using namespace System::Windows::Forms; [STAThread] int main(array ^args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Application::Run(gcnew MyForm()); return 0; } } 

Observe que você precisará alterar o nome do namespace para o nome do seu projeto. Pressione F5 para testar. Você pode projetar o formulário como normal assim que tudo sair.


OBSERVAÇÃO, o Visual Studio 2015 tem um erro desagradável de ordem de boot estática no CRT que pode fazer com que o aplicativo trave instantaneamente com um AVE na boot se o projeto contiver qualquer código C ++ nativo. Até agora, um bug não corrigido, o risco inevitável de ter esses modelos de projeto removidos. Uma possível solução alternativa é alterar o ponto de input (4th bullet).

Para um projeto que segmente x86, copie e cole esta string:

 ?mainCRTStartupStrArray@@$$FYMHP$01AP$AAVString@System@@@Z 

Para um projeto que segmenta x64, copie e cole:

 ?mainCRTStartupStrArray@@$$FYMHP$01EAPE$AAVString@System@@@Z