Я получил p-invoke вызов неуправляемой DLL, которая не работала в моем приложении WPF, но не в простом начальном приложении WPF. Я попытался выяснить, в чем проблема, но в конце концов пришел к выводу, что если я выделю слишком много памяти перед выполнением вызова, вызов завершится неудачно. У меня было два отдельных блока кода, оба из которых были бы успешными сами по себе, но это вызвало бы сбой, если бы оба были запущены. (Они не имели никакого отношения к тому, что пытается сделать вызов p-invoke).
Какие проблемы в неуправляемой библиотеке могут вызвать такую проблему? Я думал, что управляемые и неуправляемые кучи должны были автоматически разделяться.
Насколько я могу судить, сбой происходит в динамически загруженной вторичной DLL-библиотеке, из которой вызывается p-файл. Может ли это иметь какое-то отношение к этому?