2013-03-20 40 views
2

只是試圖讓一個新的部分,並設置其屬性將返回的#pragma這樣的警告:的#pragma節和屬性

警告C4330:屬性「寫」的部分「.mysec」忽略

Simple代碼:

#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,/固定,/ NXCOMPAT:NO,/ OPT:NOREF

OS /工具:贏X64/MSVC++ 110

我讀了MSDN一些文章,在這個格外但http://msdn.microsoft.com/en-us/library/50bewfwa(v=vs.110).aspx沒有找到答案。

謝謝。

回答

1

我認爲這是由於execute標誌。我不認爲你可以在Windows中有一個包含可寫代碼的部分。

我可能會記住這個錯誤,但它會是一個安全問題,因此不支持。

+0

此時,沒有執行屬性的編譯不會給出警告。 – JEdot 2013-03-20 02:49:30

+0

正如所料。執行標誌意味着代碼將在該部分。它不支持可寫。刪除執行將其更改爲數據部分 – 2013-03-20 03:18:15

+0

經過大量小時問題後,您說得對。 – JEdot 2013-03-20 14:00:29