C# VS 2017 - отключить функцию DEP во время сборки

avatar
Zeller33
8 апреля 2018 в 09:31
1217
1
1

Как следует из заголовка, как отключить функцию DEP для конкретного проекта C#, а не для всей ОС? Я использую Visual Studio 2017

Мне нужно использовать в проекте старую ActiveX Dll, для которой необходимо отключить эту функцию, иначе во время выполнения возникнут ошибки.

Примечание. Я искал везде и следил за каждым поиском в Google. Мои свойства/параметры не соответствуют тому, что написано в Интернете (может быть, потому что я использую VS 2017??)

Спасибо

Источник
DavidG
8 апреля 2018 в 09:46
0

online-tech-tips.com/windows-xp/disable-turn-off-dep-windows

Jeremy Thompson
8 апреля 2018 в 09:49
0

Какие ошибки? Вы пробовали использовать позднее связывание? Как вы ссылаетесь на Active X DLL?

Hans Passant
8 апреля 2018 в 09:59
1

Вы должны запустить Editbin.exe в событии после сборки. Используйте параметры /NXCOMPAT:NO и /HIGHENTROPYVA:NO. Это усложнилось в VS2017, обходной путь здесь.

Zeller33
8 апреля 2018 в 10:20
0

Спасибо, что помогло

Ответы (1)

avatar
Zeller33
8 апреля 2018 в 10:20
1

Хорошо, я исправил это благодаря всеобщей помощи:

  1. Обязательно установите VC++ 2017 v141-Toolset (x86,x64)

  2. Добавьте в событие после сборки следующее:

вызов "$(DevEnvDir)..\tools\vsdevcmd.bat"

"$(DevEnvDir)....\VC\Tools\MSVC\14.13.26128\bin\Hostx86\x86\editbin.exe" /NXCOMPAT:NO "$(TargetPath)"

Должен быть символ новой строки между ...vsdevcmd.bat" и "$(DevEnvDir... Также версия набора инструментов может измениться (14.13.26128), поэтому при необходимости отрегулируйте.

Hans Passant
8 апреля 2018 в 11:04
0

Я немного сожалею, что показываю, как сделать это в обоих направлениях. Вы либо используете vsdevcmd.bat или используете полный путь. Учитывая, что эти пути оказались совсем нестабильными, вы действительно предпочитаете vsdevcmd.