в чем проблема подскажите если МОЖЕТЕ?
free не может освободить память выделенную в другом процессе
Он просто до них не достает
Там даже слепому понятно что ты не передаешь указатель, а даже если передашь кастом то это не сработает по вышеуказанной причине
Погоди, переменная результ почему в другом процессе? Туда же записывается просто цифра, после использования функции из длл
а зачем тебе его освобождать?
Там 9раниться какая-то информация, чтоб не получить фантомно заполненную память?
Т.к. в си нет garbage collectora
Я не говорили про result. Да и вообще с чего ты взял что надо его освобождать 😂. Он же находится в стеке
Это для памяти выделенной в куче
А с чего бы это был другой процесс если это длл?
попытка освободить переменную с автоматическим сроком хранения
Я объявляю функционал функций из длл, но запускаю их в области функции main
Я к тому что дллки загружаются в твой процесс
Для нее выделяется память доступная со всех процессов через сиколы
там написано буквально -"ожидалось void* а по факту char"
А ,да, при импорте из длл переменная имеет какой-то определенный срок жизни?
Не путай код секцию и то что маллок возращает
Что такое сиколы
это переменная определенная внутри main, время ее жизни до return
А понял, и переживать за то что она останется ненадо?
она не останется
покажи функи из dll
__declspec(dllexport) char add(char a, char b) { return a+b; } __declspec(dllexport) char sub(char a, char b) { return a-b; }
еще есть файл .def, надо?
Обсуждают сегодня