I've filled a MODULEENTRY32 struct from winapi including the modBaseAddr. I need to convert it to a std::string while keeping its format. I've tried copying the BYTE *modBaseAddr contents to a char buffer then making a std::string out of that. This generated some cryptic characters, and other times gave a mem access violation: 0xC0000005: Access violation reading location 0x001013C0.. I understand why this happens, and after further research I'm stumped on any solutions.
Thanks,
Edit: To clarify my intent, I'm logging it solely for the memory address
You can use a std::ostringstream. Any kind of pointer that is passed to operator<<, other than a char*, will print out the address it holds when. char* is handled special as a null-terminated string instead. Since BYTE* is really a char*, you just have to type-cast it to print its address:
std::ostringstream o;
o << (void*) modBaseAddr;
std::string str = o.str();
User contributions licensed under CC BY-SA 3.0