如果我查看便携式可执行文件的内部信息,IMAGE_OPTIONAL_HEADER
部分内有IMAGE_DLLCHARACTERISTICS_NO_ISOLATION
字段,正如Microsoft提到here一样,它意味着:“图像是隔离感知的,但是不应孤立。“但是,我不明白这是什么意思,或隐含在这里,无法找到更多相关信息。此选项也作为Visual Studio选项存在,并且在创建Win32应用程序项目时默认启用它(VS 2015 C ++)。在启用它之前,我想知道它对代码生成的作用。
如果有人知道,请分享。提前谢谢。
答案 0 :(得分:4)
它控制Windows加载程序在加载进程时是否查找manifest:
/ALLOWISOLATION
会导致操作系统执行清单查找和加载。
/ALLOWISOLATION
是默认设置。
/ALLOWISOLATION:NO
表示可执行文件的加载方式就像没有清单一样,并导致EDITBIN引用设置可选标头中的IMAGE_DLLCHARACTERISTICS_NO_ISOLATION
位DllCharacteristics
{executable-name.exe.manifest
1}}字段。 当为可执行文件禁用隔离时,Windows加载程序不会尝试为新创建的进程查找应用程序清单。即使可执行文件本身中有清单,或者存在名称为{{1}}的清单,新进程也没有默认激活上下文。