У меня есть пара функций в пространстве имен с именем stub
.
Я должен определить точный начальный адрес пространства имен и конечный адрес, по крайней мере, размера пространства имен в памяти (чтобы скопировать эти функции в другой процесс).
Хотя это отлично работает в Visual C ++ 2008, добавив
void stub_end() { }
в конце пространства имен и использование
size_t size = reinterpret_cast<ULONG_PTR>(stub_end) - reinterpret_cast<ULONG_PTR>(stub_start);
для определения размера заглушки.
Это сработало, потому что Visual C ++ сохранил порядок функций в том виде, в котором он находится в файле .cpp, однако в Visual C ++ 2010 это больше не так.
Как узнать размер функций или всего пространства имен / заглушки, используя директивы прагмы, средства компилятора / компоновщика или аналогичные?