2

C#とC ++ / CLIを使用した相互運用を開始するのに最適なオンラインガイド/チュートリアルは何ですか?C#で作成された構造体をC ++/CLIに渡すための優れたガイドを探しています。私が見たチュートリアルの多くは、C#で作成されたカスタム構造をC ++/CLIに渡すことをカバーしていません。助言がありますか ?

ありがとう。

4

1 に答える 1

9

多くのチュートリアルが見つからない理由は、実際には何もないからです。別のC#クラス/メソッドに渡すのと同じ方法で、管理構造をC#からC ++/CLIに渡します。

あなたがC#で構造を持っていたと言う:

public struct TheStruct
{
  public int i;
  public String str;
}

次のようなメソッドをC++/CLIで記述します。

// *.h
void PassStruct(TheStruct ^myStruct); 


// *.cpp
void classnamegoeshere::PassStruct(TheStruct ^myStruct)
{
   int j = myStrict->i;
   String ^localStr = myStruct->str;
}

だから、いくつかのメモ...

  1. C#リファレンスを取得するには、C ++/CLIコードにusingステートメントを含める必要があります
  2. C#アセンブリ(構造体を定義する)をC ++ / CLI参照リストに含めます)
  3. 管理対象オブジェクトは常に^ポインター表記を使用します(vs. *)
  4. メソッドまたはメンバーを使用するには、標準のポインター表記(->)を使用します
  5. 循環参照を作成しないように注意する必要があるため、C ++/CLIでTheStructを定義することをお勧めします。その場合は次のようになります。

    public ref struct TheStruct {public:int i; 文字列^str; }

簡単ですか?

于 2013-01-31T21:14:20.380 に答える