У меня есть список, содержащий несколько структур _MEMORY_BASIC_INFORMATION, вложенных в mb structs (defs ниже). У меня возникают проблемы с получением информации из вложенной _MEMORY_BASIC_INFORMATION. Я использую итератор для прохождения списка. Ниже я знаю, что ошибка g-> mbi; но я не знаю, как я должен ссылаться на вложенную структуру ... Спасибо.Итерирование по списку, каждый элемент, состоящий из структуры внутри структуры, трудности с получением значений
В основном я пытаюсь написать базовый адрес из gMemList [i], чтобы начать = (DWORD) g.mbi.BaseAddress; но я получаю ошибку c2228: слева от '.mbi' должен быть класс/struct/union.
list<struct mb *> gMemList
std::list<mb *>::iterator i = gMemList.begin();
while(i != gMemList.end())
{
struct mb *g = *i;
MEMORY_BASIC_INFORMATION mbi2 = g->mbi;
start = (DWORD)mbi2.BaseAddress;
buf = new wchar_t[255];
while(start < mbi2.RegionSize)
{...
//struct mb
//{
// MEMORY_BASIC_INFORMATION mbi;
// char *p;
//};
/*typedef struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress;
PVOID AllocationBase;
DWORD AllocationProtect;
SIZE_T RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION;*/
Можете ли вы определить «у меня проблемы»? В чем проблема? Что такое «ошибка»? – EboMike
Btw, вы копируете информацию в локальную переменную. Это плохо. Вероятно, вы думаете о 'MEMORY_BASIC_INFORMATION & mbi2 = g-> mbi; '. – EboMike
Синтаксически корректно. Является ли это ошибкой во время выполнения? –