2010-01-28 3 views
6

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

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

+1

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

ответ

7

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

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

+6

.. и C# позволяет вам легко написать _rest_ кода. –

2

Управляемый 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

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

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

Смежные вопросы