#pragma部分和属性

时间:2013-03-20 02:37:33

标签: visual-c++ portable-executable

只是尝试创建一个新部分并使用#pragma设置其属性会返回此警告:

  

警告C4330:忽略“.mysec”部分的属性“写入”

简单代码:

#include <windows.h>
#include <stdio.h>

#pragma section(".mysec",execute,read,write)
__declspec(allocate(".mysec")) UCHAR var[] = {0xDE, 0xAD, 0xBE, 0xEF};

void main() { return; }

链接器选项:/ DYNAMICBASE:NO,/ FIXED,/ NXCOMPAT:NO,/ OPT:NOREF

OS /工具:Win x64 / msvc ++ 110

我在MSDN上阅读了一些文章,尤其是http://msdn.microsoft.com/en-us/library/50bewfwa(v=vs.110).aspx,但未找到答案。

感谢。

1 个答案:

答案 0 :(得分:2)

我认为这是由execute标志引起的。我不认为你可以在Windows中有一个包含可写代码的部分。

我可能记得这个错误,但这会出现安全问题,因此不予支持。