Я хочу загрузить модуль сборки .net, когда я использую mono_assembly_open нормально.Но когда я использую mono_image_open_from_data_with_name, это не работает, не может пройти модуль, который я хочу загрузить.
void *load_image_from_file(const char *full_file_path)
{
if (full_file_path == NULL)
{
return NULL;
}
if (!PathFileExistsA(full_file_path))
{
return NULL;
}
HANDLE file = CreateFileA(full_file_path, FILE_READ_ACCESS, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (file == INVALID_HANDLE_VALUE)
{
return NULL;
}
DWORD file_size = GetFileSize(file, NULL);
if (file_size == INVALID_FILE_SIZE)
{
CloseHandle(file);
return NULL;
}
byte *file_data = reinterpret_cast<byte *>(malloc(file_size));
if (file_data == NULL)
{
CloseHandle(file);
return NULL;
}
DWORD read = 0;
ReadFile(file, file_data, file_size, &read, NULL);
if (file_size != read)
{
free(file_data);
CloseHandle(file);
return NULL;
}
MonoImageOpenStatus status;
void *image = mono_image_open_from_data_with_name(reinterpret_cast<char *>(file_data), file_size, MONO_TRUE, &status, MONO_FALSE, full_file_path);
free(file_data);
return image;
}