Код: Выделить всё
error LNK2026: module unsafe for SAFESEH image.
MASM
Дальше: объект сборки, созданный с помощью /safeseh, создает это
Код: Выделить всё
COFF SYMBOL TABLE
001 00000011 ABS notype Static | @feat.00
Код: Выделить всё
COFF SYMBOL TABLE
001 00000010 ABS notype Static | @feat.00

Приведенное выше сравнение было получено при сборке этого 32-битного ассемблерного кода с помощью /safeseh включить/выключить:
HelloWorld.asm
Код: Выделить всё
.386
.model flat, stdcall
option casemap :none
includelib libcmt.lib
includelib legacy_stdio_definitions.lib
printf PROTO NEAR C,:DWORD
.data
HelloWorld db "Hello World!", 0
.code
main PROC NEAR C
INVOKE printf,ADDR HelloWorld
ret
main ENDP
END
Код: Выделить всё
C:\masm32>"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars32.bat"
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.11.29
** Copyright (c) 2021 Microsoft Corporation
C:\masm32>ml /c /safeseh HelloWorld.asm
Microsoft (R) Macro Assembler Version 14.37.32822.0
Copyright (C) Microsoft Corporation. All rights reserved.
Assembling: HelloWorld.asm
C:\masm32>dumpbin /all HelloWorld.obj > safeseh.txt
C:\masm32>ml /c HelloWorld.asm
Microsoft (R) Macro Assembler Version 14.37.32822.0
Copyright (C) Microsoft Corporation. All rights reserved.
Assembling: HelloWorld.asm
C:\masm32>dumpbin /all HelloWorld.obj > nosafeseh.txt
Создал пример C++ для сравнения со сборкой MASM:
Код: Выделить всё
#include
int main()
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78211571/what-does-each-bit-in-the-feat-00-feature-flags-represent[/url]
Мобильная версия