Problemas de afxwin.h en la aplicación de Windows Studio de Visual Studio 2015

Hace un tiempo escribí una aplicación C ++ CLI de Windows Form, que se compiló bien en Visual Studio 2013. Ahora quería volver a compilarla en Visual Studio 2015 Update 1 pero tengo un problema, y después de horas de pruebas descubrí al culpable. esafxwin.h.

TL; DR - ¿Hay alguna forma de usarlo?stdafx.h (entoncesafxwin.h y todas las demás importaciones que vienen con él) en una aplicación de Windows Form compilada con Visual Studio 2015 sin que la aplicación se bloquee al inicio?

Aquí se explica cómo reproducir los mismos problemas que estoy enfrentando en mi aplicación.

Como Windows Form ya no está disponible como plantilla de proyecto en VS2015, creé unProyecto vacío de CLR llamadoPrueba

Ctrl-Shift-A para agregar unUI > Formulario de Windows llamadoMyForm

EnMyForm.cpp agregué esto:

#include "MyForm.h"

using namespace System;
using namespace System::Windows::Forms;

[STAThread]
int main(cli::array<System::String^>^ args)
{
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Test::MyForm form;
    Application::Run(%form);
}

Debajopropiedades de configuración > Linker > Avanzado lo pusePunto de entrada aprincipal

Debajopropiedades de configuración > Linker > Sistema lo puseSubsistema aWindows (/ SUBSISTEMA / VENTANAS)

COMPILAR (CONFIGURACIÓN DE DEPURACIÓN): compila sin errores / advertencias

CORRER: Corre sin ningún problema.

Ahora intentemos agregarafxwin.h aMyForm.cpp:

#include <afxwin.h>

Debajopropiedades de configuración > General lo puseUso de MFC aUse MFC en una DLL compartida

COMPILAR (CONFIGURACIÓN DE DEPURACIÓN): compila sin errores / advertencias

CORRER: la aplicación ni siquiera se inicia, solo muestraDepuración de aserción error de expresión_CrtIsValidHeapPointer (bloque)

Ahora, para corregir este error, descubrí que es necesario eliminar elPunto de entrada, entonces:

Debajopropiedades de configuración > Linker > Avanzado quitePunto de entrada valor (que anteriormente configuré enprincipal)

COMPILAR (CONFIGURACIÓN DE DEPURACIÓN): compila sin errores / advertencias

CORRER: la aplicación nuevamente ni siquiera se inicia, ya no se muestraDepuración de aserción peroSystem.AccessViolationException en un módulo desconocido e "Intenté leer o escribir memoria protegida. Esto es a menudo una indicación de que otra memoria está dañada".

Estos son los errores que obtengo en mi aplicación, y me pregunto cómo es posible que simplemente incluirafxwin.h da todos estos problemas en VS2015 mientras que no lo hizo en VS2013.

¿Hay algo que pueda hacer para solucionarlo, sin volver a VS2013?

Respuestas a la pregunta(1)

Su respuesta a la pregunta