stub
이라는 네임 스페이스에 몇 가지 기능이 있습니다. 적어도 네임 스페이스의 정확한 시작 주소와 최종 주소를 결정해야합니다.이 주소는 메모리의 네임 스페이스 크기 이상이어야합니다. 이 동안 네임 스페이스의 끝에메모리의 함수/스텁/네임 스페이스 크기 결정
void stub_end() { }
을 추가하고 스텁의 크기를 결정하기 위해
size_t size = reinterpret_cast<ULONG_PTR>(stub_end) - reinterpret_cast<ULONG_PTR>(stub_start);
를 사용하여 2008 Visual C++에서 완벽했다.
Visual C++는 .cpp 파일에있는 것처럼 함수 순서를 보존했기 때문에이 작업이 효과적 이었지만 Visual C++ 2010에서는 그렇지 않습니다.
어떻게하면 pragma 지시문, 컴파일러/링커 기능 또는 유사 기능을 사용하여 함수 또는 전체 네임 스페이스/스텁의 크기를 알 수 있습니까?
네임 스페이스는 포함 된 유형 및 기능에 대한 저장소를 의미하지는 않으며 구문 도구입니다. –
나도 알아, 근본적으로 질문은 어떤 종류의 함수 다. (예제에서와 같이 마지막 함수도 비어있을 수있는 첫 번째 함수와 마지막 함수가 주어진다.) –
컴파일러는 코드를 주문할 필요가 없다. 선언의 순서대로 그리고 최적화가 가능 해지 자마자 분명히하지 않을 것입니다. –