Вызов malloc () из неуправляемой DLL, вызываемой из управляемой DLL, вызывает нарушение прав доступа - PullRequest
1 голос
/ 29 июня 2011

У меня есть набор тестов, написанных на C ++ / CLI, которые обращаются в собственную DLL для удаленного тестирования устройства Windows CE.В двух точках процесса настройки теста выделяется память в собственной куче - один раз для 512 байтов, другой для 572 байтов.В обоих случаях malloc () в конце концов вызвал HeapAlloc () с использованием кучи CRT.Дескриптор кучи CRT не менялся между вызовами.Вызов, который должен был выделить 572 байта, завершается неудачей с исключением 0xc0000005 (я могу попытаться предоставить примеры кода, если это необходимо, но мне придется выяснить, какие примеры являются достаточно общими, чтобы не нарушать NDA).

Ответы [ 2 ]

1 голос
/ 01 июля 2011

Похоже, что в конечном итоге проблема была решена не использованием кучи времени выполнения C, а использованием GetProcessHeap () или локальной кучи для распределения.

0 голосов
/ 30 июня 2011

Рассмотрите возможность использования отладки malloc. Вот статья об использовании режима отладки DevStudio для замены специальных отладочных версий malloc и free.

...