在构建一个Visual C++示例项目时,我遇到了这个错误。 首先,我下载了三个示例项目,它们都解决同一个问题:打印出所有小于N的质数(您可能了解这些示例项目?)。我成功地构建了纯C项目,没有任何问题。但是,当我尝试构建基于汇编的项目时,就会出现这个错误。
谢谢。
在构建一个Visual C++示例项目时,我遇到了这个错误。 首先,我下载了三个示例项目,它们都解决同一个问题:打印出所有小于N的质数(您可能了解这些示例项目?)。我成功地构建了纯C项目,没有任何问题。但是,当我尝试构建基于汇编的项目时,就会出现这个错误。
谢谢。
在 Visual Studio 2012 Express 版本中:
Right-click on your project ->
Properties ->
Configuration Properties ->
Linker ->
Advanced and changed "Image Has Safe Exception Handlers" to "No (/SAFESEH:NO)"
对于 /SAFESEH:NO
链接器设置,一张图片胜过 0x3e8(1000)个单词:
或者,如果你知道汇编代码不包含异常处理程序或所有异常处理程序都使用了 .SAFESEH,则可以告诉 MASM 提供保证:这将允许你在项目链接时保持启用 /SAFESEH
。但是,你要确保提供的保证是正确的,否则请使用第一个选项。
Try to disable SAFESEH.
来自规范:/SAFESEH被指定了,但模块与安全异常处理功能不兼容。
.safeseh
MASM指令:https://learn.microsoft.com/en-us/cpp/assembler/masm/dot-safeseh?view=msvc-150,但可能您不需要它,因为您的汇编代码实际上并不包含任何异常处理程序。」(链接已修复) - mirabilos