Распределение памяти внутри DLL, возвращая нулевой указатель - PullRequest
3 голосов
/ 04 января 2012

Я использую DLL, которая выполняет выделение памяти и возвращает указатель.Код выглядит примерно так:

ObjectClass *obj = FunctionFromDLL();

obj является допустимым указателем, но obj->SubObject является неверным указателем (0xcdcdcd) Я проверил и FunctionFromDLL() правильно выделяет SubObject, этот указатель получает толькоплохое значение, когда функция возвращается к вызывающей стороне.

Есть ли что-то особенное для DLL, чтобы "делиться" своей памятью?

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Специального способа разделения памяти, распределенной между dll и приложением, не существует, просто убедитесь, что память удалена в dll ПОСЛЕ того, как вы ее больше не используете.

Редактировать: 0xCDCDCDCD: Используется библиотекой времени выполнения отладки Microsoft C ++ для маркировки неинициализированной кучи памяти

0 голосов
/ 05 января 2012

Это потому, что я определил _USE_32BIT_TIME_T как значение препроцессора.

Я удалил его, и теперь он отлично работает.

Спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...