C#の代わりにC ++を使用することの主な利点は、ネイティブコードにコンパイルすることです。これにより、パフォーマンスが向上します。C#の方が簡単ですが、マネージコードにコンパイルされます。
なぜ誰もがマネージC++を使用するのでしょうか?それは私たちにどのような利点をもたらしますか?
C#の代わりにC ++を使用することの主な利点は、ネイティブコードにコンパイルすることです。これにより、パフォーマンスが向上します。C#の方が簡単ですが、マネージコードにコンパイルされます。
なぜ誰もがマネージC++を使用するのでしょうか?それは私たちにどのような利点をもたらしますか?
マネージC++およびC++/ CLIを使用すると、ネイティブC++と対話するマネージコードを簡単に記述できます。
これは、既存のシステムを.Netに移行する場合や、C++で実行する必要のある計算を使用して科学的なコンテキストで作業する場合に特に便利です。
マネージ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;
};
}
(c ++ / cliは新しい名前です)ネイティブコードをラップして、ガベージ制御されたc#で問題なく動作し、コールバックも処理できます。逆に、マネージ型を作成し、C++からそれらと対話することができます。
開発者がc#に簡単に移行して、前述のようにネイティブライブラリにリンクするxnaなどの高速ビルド時間をパイロットできるようにします。