Подтвердить что ты не робот

#error Используйте переключатель /MD для сборки _AFXDLL

Я обнаружил ошибку в Visual Studio, Please use the /MD switch for _AFXDLL builds поэтому, если я не могу определить _AFXDLL, будет ли моя программа ошибочной?

4b9b3361

Ответ 1

Настройки привязки CRT и привязки MFC должны быть согласованными. Итак, на самом деле есть два возможных ответа на этот вопрос:

  • Использование/MT (Свойства → C/С++ → Генерация кода) и статический MFC (Свойства → Общие → Использование MFC)

  • Использование/MD (Свойства → C/С++ → Генерация кода) и общий MFC (Свойства → Общие → Использование MFC)

Ответ 2

Да, будет. Что вам нужно сделать, так это перейти к свойствам проекта Visual Studio. В Свойствах конфигурации → C/С++ → Генерация кода убедитесь, что вы используете многопоточную Dll для вашей библиотеки времени выполнения.

Это решит ваши проблемы.

Ответ 3

Чтобы статически связать мою программу с файлом Crt.dll, я переключил компилятор Visual Studio 2017 option-

Настройки проекта | C/C++ | Генерация кода | Библиотека времени исполнения

из многопоточной DLL/MD,

к многопоточному /MT сообщение выскочило up-

E0035 - #error Пожалуйста, используйте ключ /MD для сборок _AFXDLL


Didn't make sense, because I'm making an .exe program, not a .dll.

This is a project that I imported from VC6. Scanning the project files for _AFXDLL, it wasn't found. It Was found though in the past.. in my dialog Label.cpp file, as defined....

#ifdef _AFXDLL
   Enable3dControls();
#else
   Enable3dControlsStatic();
#endif.

I commented out all four of these lines.

_AFXDLL must have been in there somewhere, deep inside the project(?), because commenting out the lines didn't help.

The program finally did link the CRT file when I put in what the first poster suggested, into the start of Stdafx.h , line 10... after the #if !defined, then #define lines.

#undef _AFXDLL.

It went in size from 110KB to 2040K, and works fine in a different computer.
~~~~~~~~
Thank You Jesus!