2011-07-18 2 views
0

정적 읽기 전용 문자열 데이터에 Microsoft Visual C++ #pragma section(".text")__declspec(allocate(".text"))을 사용해 보았습니다. 그러나 바이너리에는 여전히 .rdata 섹션이 있습니다. 나는 표준 C 라이브러리를 사용하지 않는다. MSVC++를 코드 삽입과 함께 사용하기위한 바이트 코드 컴파일러로 사용하고 있습니다.MSVC++ -`.reloc`을 제외한 모든 부분을 강제로 단일 섹션에 넣으십시오.

은 크게 "는 .text"섹션 내부 판독 전용 데이터 및 하지은 "으로 .rdata '섹션을 구비하여 주입을 단순화한다. 어떻게해야합니까? 모든 섹션을 하나의 섹션으로 채우거나 2 개의 섹션을 함께 병합하는 링커 옵션이 있습니까?

답변

1

Microsoft 링커에는 merge sections 옵션이 있습니다. 이것은 내 목적을 위해 작동하는 것 같습니다. /MERGE:[from=to]

1

모든 문자열과 기타 정적 데이터를 수동으로 스택에 둡니다.

.text를 제외하고 다른 섹션은 필요하지 않습니다.

char String[] = { 's', 't', 'r', 'i', 'n', 'g', 0 }; 

그리고 유니 코드 :

wchar_t WideString[] = { L'H', L'e', L'l', L'l', L'o', L'\0' }; 
관련 문제