У меня есть Dll, который я ввожу в свой целевой процесс. Эта Dll меняет некоторые переменные, указывая адреса памяти. Normaly я это люблю:написать строку в указатель C++
int* variable = (int*)0x????????;
*variable = 1;
Теперь я хочу сделать то же самое с цепочкой. Чтение струнных произведений.
string* variable = (string*) 0x????????;
Но изменение строки приводит к сбою процесса.
*variable = "hello world"; //crash
Как это исправить?
Это чрезвычайно изворотливый. Вы можете взломать его для простых встроенных типов, но 'std :: string' - это не такая вещь. Он содержит указатели на данные, и вы не справляетесь с этим. Что вы на самом деле пытаетесь достичь? –
изменить строку, сохраненную по адресу. – nice
Откуда у вас этот адрес? Почему, по вашему мнению, есть правильно построенный объект по этому адресу? – Slava