Используя Моно для разработки в C++

Одна реализация этой проблемы должна попытаться вызвать конструктора без параметров Типа:

public static object GetNewObject(Type t)
{
    try
    {
        return t.GetConstructor(new Type[] { }).Invoke(new object[] { });
    }
    catch
    {
        return null;
    }
}

Вот тот же подход, содержавшийся в общем методе:

public static T GetNewObject<T>()
{
    try
    {
        return (T)typeof(T).GetConstructor(new Type[] { }).Invoke(new object[] { });
    }
    catch
    {
        return default(T);
    }
}
6
задан user123668 17 July 2009 в 03:03
поделиться

2 ответа

Я думаю, вы должны использовать MonoDevelop , IDE, в отличие от самого Mono.

Да, MonoDevelop использует gcc / g ++ для компиляции исходного кода C / C ++ , но он не скомпилирован в CIL - он скомпилирован в собственный двоичный файл.

Если я правильно понимаю, тогда вы сможете использовать ускорение.

Если, однако, вы спрашиваете, есть ли у Mono поддержка сборок или исполняемых файлов в смешанном режиме (например, сборки / exe, содержащие как собственный, так и .NET CIL), то я с сожалением сообщаю вам, что эта функция не поддерживается, а также не компилирует C ++ в чистый CIL с помощью Mono.

7
ответ дан 9 December 2019 в 20:47
поделиться

Если вам не нужен смешанный режим (т. Е. Забудьте собственный part and go for CIL-only), mono действительно работает с кодом C ++ (я слышал, что они теперь экспериментально поддерживают смешанный режим, особенно в Windows, и где-то еще через Wine, но я думаю, что эта часть НЕ готова к использованию в прайм-тайм). Единственный хорошо поддерживаемый компилятор C ++ в настоящее время - это Microsoft C ++ / CLI на платформах Net 2.x; (уже много лет) прилагаются усилия по добавлению gcc, но я пока не знаю ни одного готового к эксплуатации результата: - (.

5
ответ дан 9 December 2019 в 20:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: