Проблемы с afxwin.h в приложении Windows Form 2015 для Windows Form

Некоторое время назад я написал C ++ CLI-приложение Windows Form, которое прекрасно скомпилировалось в Visual Studio 2013. Теперь я хотел перекомпилировать его в Visual Studio 2015 Update 1, но столкнулся с проблемой, и после нескольких часов тестов я выяснил виновника являетсяafxwin.h.

TL; DR - Есть ли способ, которым я могу использоватьstdafx.h (такafxwin.h и все остальные операции импорта) в приложении Windows Form, скомпилированном с Visual Studio 2015 без сбоя приложения при запуске?

Вот как воспроизвести те же проблемы, с которыми я сталкиваюсь в моем приложении.

Поскольку форма Windows больше не доступна в качестве шаблона проекта в VS2015, я создалCLR Пустой проект называетсяТестовое задание

Ctrl-Shift-A, чтобы добавитьUI > Форма Windows называетсяMyForm

ВMyForm.cpp я добавил это:

#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);
}

ПодСвойства конфигурации > Linker > продвинутый я поставилТочка входа вглавный

ПодСвойства конфигурации > Linker > система я поставилSubSystem вWindows (/ SUBSYSTEM / WINDOWS)

COMPILE (КОНФИГУРАЦИЯ ОТЛАДКИ): компилируется без ошибок / предупреждений

БЕЖАТЬ: работает без проблем.

Теперь давайте попробуем добавитьafxwin.h вMyForm.cpp:

#include <afxwin.h>

ПодСвойства конфигурации > генеральный я поставилИспользование МФЦ вИспользуйте MFC в общей DLL

COMPILE (КОНФИГУРАЦИЯ ОТЛАДКИ): компилируется без ошибок / предупреждений

БЕЖАТЬ: приложение даже не запускается, оно просто показываетОшибка отладки ошибка в выражении_CrtIsValidHeapPointer (блок)

Теперь, чтобы исправить эту ошибку, я обнаружил, что необходимо удалитьТочка входа, так:

ПодСвойства конфигурации > Linker > продвинутый Я удалилТочка входа значение (которое я ранее установил наглавный)

COMPILE (КОНФИГУРАЦИЯ ОТЛАДКИ): компилируется без ошибок / предупреждений

БЕЖАТЬ: приложение снова даже не запустится, оно больше не показываетОшибка отладки ноSystem.AccessViolationException в неизвестном модуле и «Попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена».

Это ошибки, которые я получаю в своем приложении, и мне интересно, как это возможно, что просто в том числеafxwin.h дает все эти проблемы в VS2015, а в VS2013 - нет.

Что я могу сделать, чтобы это исправить, не возвращаясь к VS2013?

Ответы на вопрос(1)

Ваш ответ на вопрос