<< 이글루에 올렸던 포스트를 그대로 가져옴~ >>

PE 포맷의 실행파일은 구조적으로 섹션이라는 게 존재합니다.

보통 실행코드는 .text 섹션에, 데이터(초기화된 변수들)는 .data 섹션으로 지정되며(VC++ 기준)

그 외 필요에 따라서 다른 섹션들도 존재할 수 있구요.

개발을 하다보면 경우에 따라서 자신이 작성한 실행코드 혹은 데이터들을

별도의 섹션으로 만들어서 분리를 해야하는 경우도 생길 수 있는데...

이럴 때는 #pragma 전처리기를 이용하면 됩니다.

먼저 데이터들을 섹션으로 분리하고 싶을 때는...

// 데이터 섹션
#pragma data_seg(".MyData")
    .
    .
    // 별도의 섹션으로 분리할 데이터
    .
    .
#pragma data_seg()
#pragma comment(linker, "/SECTION:.MyData,RWS")

그리고 실행 코드들을 섹션으로 분리하고 싶을 때는...

// 코드 섹션
#pragma code_seg(".MyCode")
    .
    .
    // 별도의 섹션으로 분리할 코드들
    .
    .
#pragma code_seg()
#pragma comment(linker, "/SECTION:.MyCode,RWS")

이런식으로.. 코드를 구현하면 됩니다.

데이터섹션을 추가하고 싶으면 data_seg() 를, 코드섹션을 추가하고 싶으면 code_seg()

사용하면 됩니다.