temtriss Опубликовано 10 апреля, 2021 Поделиться Опубликовано 10 апреля, 2021 Всем привет :)) Кто может подсказать, возникла необходимость вызвать функцию которая принимает std::string как параметр... Естественно просто подсунуть ей std::string не получится(на сколько мне известно, реализация зависит от кучи факторов, версии компилятора, флагов, погоды :D) по этому они будут отличатся. this ptr у меня есть :)) Я чуток по отлаживал. В моей МСВЦ 2019 std::string строка или указатель на строку находится сразу в std::string В игре же +0x4 так что исходя из этого, получается a2 - что-то... а3 строка или указатель на строку в зависимости от размера строки. > 16 указатель, <=16 строка а8 - размер строки далее вторая std::string чисто технически, я могу вручную вызвать все проверки из этой функции в своём коде и вызвать евент т.к. он вызывается чуть ниже(я уже это сделал, но без всех этих проверок очень легко уронить игру) но кода тут очень много в функции, по этому хотелось бы как-то обойтись) Не кто попадал в подобную ситуацию? чисто технически отработает ли это если я просто подсуну в а3 и а10 char* а, в а8 и а15 strlen на эти строки? P.S. последняя мысль пришла в голову пока писал пост, сейчас пойду опробую Ссылка на комментарий Поделиться на другие сайты Поделиться
temtriss Опубликовано 10 апреля, 2021 Автор Поделиться Опубликовано 10 апреля, 2021 Всем спасибо, последняя идея сработала) т.к. функция не использует std::string как std::string Типо так: Сорян, зря открыл тему. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 11 апреля, 2021 Поделиться Опубликовано 11 апреля, 2021 Сам спросил, сам ответил ) Прекрасно ))) Но вообще да, чаще всего функции перекидываются массивами байтов (буферами), так как накладные расходы на создание стрингов весьма велики. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения