2008-09-17 14 views
2

ダブルサンクを避けるために関数呼び出しで__clrcallデコレータを使用する必要があることをNish Sivakumarの書籍C++/CLI In Actionで読んだことがありますメソッドがアンマネージコードから決して呼び出されないことがわかっているところです。 Nishによると、メソッドのシグネチャにCLR型が含まれている場合、JITコンパイラは__clrcallを自動的に追加します。 C++/CLIプロパティを作成するときに__clrcallをインクルードする必要があるかどうかはわかりません。ある意味では、プロパティは.NET言語からしかアクセスできませんが、C++/CLIコンパイラは、マネージコードとアンマネージコードの両方から呼び出し可能なメソッド(例:*** _ get())を生成します。私のプロパティで__clrcall修飾子を使用する必要がありますか?もしそうなら、どこに行くのですか? get/set関数自体については?C++/CLIのプロパティでダブルサンクを避ける

答えて

3

@Mike B - ildasmに関するヒント - 私はそのツールについて知りませんでした。

__clrcall修飾子であるNishを誤読/誤解しているように見えますが、これはネイティブクラスのメソッドにのみ適用されます。管理クラスのすべてのメソッドは、デフォルトでは__clrcallです。これは振り返って明らかです。

明らかマーカスHeegeの本エキスパートC++/CLIas a free download利用可能であり、それは、呼び出し規約をまとめた215ページの素敵なテーブルを持っています。

+0

フォローアップありがとうございます。 –

関連する問題