В чем разница между управляемым C ++ и C #? - PullRequest
6 голосов
/ 28 января 2010

Основным преимуществом использования C ++ вместо C # является компиляция в нативный код, поэтому мы получаем лучшую производительность. C # проще, но компилируется в управляемый код.

Зачем кому-то использовать управляемый C ++ для? Какие преимущества это дает нам?

Ответы [ 3 ]

7 голосов
/ 28 января 2010

Управляемый C ++ и C ++ / CLI позволяют легко писать управляемый код, взаимодействующий с собственным C ++.

Это особенно полезно при миграции существующей системы на .Net и при работе в научных условиях с вычислениями, которые должны выполняться в C ++.

2 голосов
/ 28 января 2010

Управляемый c ++ позволяет легче взаимодействовать между собственным кодом и управляемым кодом. Например, если у вас есть библиотека на языке c ++ (файлы .cpp и .h), вы можете связать их с вашим проектом, создать соответствующие объекты CLR и просто вызвать собственный код из объектов CLR:

#include "yourcoollibrary.h"

namespace DotNetLibraryNamespace
{
    public ref class DotNetClass
    {
    public:
        DotNetClass()
        {
        }

        property System::String ^Foo
        {
            System::String ^get()
            {
                return gcnew System::String(c.data.c_str());
            }
            void set(System::String ^str)
            {
                marshal_context ctx;
                c.data = ctx.marshal_as<const char *>(str);
            }
        }

    private:
        NativeClassInMyCoolLibrary c;
    };
}
0 голосов
/ 28 января 2010

(c ++ / cli - новое имя). Вы можете переносить нативный код для безупречной работы с управляемым мусором c # и даже обрабатывать обратные вызовы. И наоборот, вы можете создавать управляемые типы и взаимодействовать с ними из c ++.

Позволяет разработчикам легко переходить на c # для тестирования быстрого времени сборки и т. Д., Например xna, ссылки на нативные библиотеки, как уже упоминалось!

...