4

只是尝试创建一个新部分并使用 #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

操作系统/工具:Win x64 / msvc++ 110

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

谢谢。

4

1 回答 1

4

我认为这是由于execute国旗。我不认为你可以在 Windows 中有一个包含可写代码的部分。

我可能记错了,但这会是一个安全问题,因此不受支持。

于 2013-03-20T02:42:12.453 回答