Утечки памяти при встраивании C# Mono в проект C++C#

Место общения программистов C#
Ответить
Anonymous
 Утечки памяти при встраивании C# Mono в проект C++

Сообщение Anonymous »

В настоящее время я пытаюсь внедрить C# Mono в свой проект MSVC C++, но столкнулся с большим количеством (возможно, сотнями) утечек памяти. (Я запустил _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);, чтобы проверить наличие утечек.) Когда я пытаюсь отследить, где они распределены, я узнаю, что они из Mono. Все, что делает мой код, — это просто инициализируется и выгружается.
Мой код:

Код: Выделить всё

mono_set_assemblies_path("../lib/mono");
MonoDomain* rootDomain = mono_jit_init("TestRuntime");
if (rootDomain == nullptr) {
throw("Failed to initialize Mono");
return 0;
}

// Create a new app domain
// @param domainName: Name of the domain
// @param configFile: Config file to use
char domainName[] = "TestRuntime";
MonoDomain* appDomain = mono_domain_create_appdomain(domainName, nullptr);

// Set the app domain as the active domain
// @param domain: The domain to set as active
// @param force: If true, the domain is set as the active domain even if it is not the root domain
mono_domain_set(appDomain, true);

//////MonoAssembly* CoreAssembly = loadCSharpAssembly("../Extern/Scripts/ScriptCore.dll");
//////MonoImage* assemblyImage = mono_assembly_get_image(CoreAssembly);

mono_domain_set(mono_get_root_domain(), false);

mono_domain_unload(appDomain);
appDomain = nullptr;

mono_jit_cleanup(rootDomain);
rootDomain = nullptr;
Впервые это произошло в моем основном игровом проекте. Я попытался создать тестовый проект с нуля, чтобы посмотреть, поможет ли это, но утечки памяти все еще есть. В обоих случаях я пытался сослаться на Черно, чтобы связать Mono с моим проектом. Я даже скопировал все нужные папки, типа lib и include, но это не помогло. Это проблема с моей настройкой или что-то еще?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -c-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»