반응형
<< 이글루에 올렸던 포스트를 그대로 가져옴~ >>
PE 포맷의 실행파일은 구조적으로 섹션이라는 게 존재합니다.
보통 실행코드는 .text 섹션에, 데이터(초기화된 변수들)는 .data 섹션으로 지정되며(VC++ 기준)
그 외 필요에 따라서 다른 섹션들도 존재할 수 있구요.
개발을 하다보면 경우에 따라서 자신이 작성한 실행코드 혹은 데이터들을
별도의 섹션으로 만들어서 분리를 해야하는 경우도 생길 수 있는데...
이럴 때는 #pragma 전처리기를 이용하면 됩니다.
먼저 데이터들을 섹션으로 분리하고 싶을 때는...
그리고 실행 코드들을 섹션으로 분리하고 싶을 때는...
이런식으로.. 코드를 구현하면 됩니다.
데이터섹션을 추가하고 싶으면 data_seg() 를, 코드섹션을 추가하고 싶으면 code_seg() 를
사용하면 됩니다.
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() 를
사용하면 됩니다.
반응형
'Programming' 카테고리의 다른 글
[C/C++] 투명창 만들기~ ( SetLayeredWindowAttributes 사용 ) (3) | 2008.08.01 |
---|---|
[C/C++] Rotate ~ 구현 (5) | 2008.07.19 |
[VB] Visual Basic 에서 C/C++ 로 만든 DLL 불러쓰기... (4) | 2007.12.14 |
[C/C++] 현재 실행중인 프로세스의 실행파일명 구하기... (2) | 2007.08.08 |
[C/C++] 대화상자 기반 프로그램에서 ESC키 눌러도 종료안되도록 하기~ㅋ (0) | 2007.07.08 |