/clr:pure
スイッチは純粋なMSILを生成しますが、検証することはできません。このモードでは、ネイティブ配列とポインタを使用できます。これは、MSILにネイティブ配列とポインタを保持する構造体があることを意味しますか?はいの場合は、MSILのネイティブ配列とポインタをどのようにコードすることができますか?純粋なC++/CLIのMSIL
3
A
答えて
4
はい、CILには、アンマネージポインタを表す型があります。それらは管理されたポインタ(C#のref
とout
、CILの&
)と似ていますが、GCがそれらを無視し、ポインタで意味をなさない算術演算を行うことができます。
興味深いことに、ポインタタイプにはターゲットタイプに関する情報が含まれているため(例:int32*
)、すべての算術演算はバイトベースです。一例として、
、以下のC++/CLI方法:それは(リフレクターによって報告されるように)ref class
内だとき
void Bar(int *a)
{
a[5] = 15;
}
は、次のCILを生成します。
.method private hidebysig instance void Bar(int32* a) cil managed
{
.maxstack 2
L_0000: ldarg.1 // load the value of a pointer to the stack
L_0001: ldc.i4.s 20 // load the number 20 (= 4 * 5) to the stack
L_0003: add // add 20 to the pointer
L_0004: ldc.i4.s 15 // load the number 15 to the stack
L_0006: stind.i4 // store the value of 15 at the computed address
L_0007: ret // return from the method
}
+0
@ildjarnで見てみると、私は 'language-all'について知らなかった、このように教えてくれてありがとう。 – svick
関連する問題
- 1. 純粋なJavaScriptの
- 2. 純粋なCSSリニアグラデーションボーダー
- 3. 純粋なCSSスライダー
- 4. コンテンツスライダ純粋なCSS
- 5. 純粋なangularjsスクロールイベントリスナー
- 6. 純粋なPHPトレントクライアント?
- 7. 適用:純粋なf <*> x =純粋な(フリップ($))<*> x <*>純粋なf
- 8. 純粋な機能のタイムアウト
- 9. 純粋なJavaScriptのジェイドテンプレート
- 10. 純粋なコアバージョンの質問
- 11. Androidの純粋なトーン
- 12. 純粋なjavascriptカルーセルのバグ
- 13. 純粋なCSSの対話
- 14. 純粋なjavaモジュールのStringDef?
- 15. 純粋なpythonクロスプラットフォームのフォントレンダラー?
- 16. 純粋なCSSのヘルプ
- 17. 純粋なas3アプリケーションのSoftKeyboardType
- 18. symfonyの純粋なHTMLフォーム
- 19. 純粋なクライアント側のMarkitup
- 20. 純粋なJavaScriptのフィルタボックスは
- 21. 純粋なRubyプロジェクトのディレクトリレイアウト
- 22. 純粋なC.Dllのエクスポート
- 23. 純粋な関数が純粋な意味を返すのは何ですか?
- 24. 純粋なJavaビデオエンドコード/デコードライブラリ
- 25. ASP.NETで純粋なJavascriptアプリケーション
- 26. 純粋なスウィフトTCP接続
- 27. スライダー(純粋なJS)でレイジーローディングイメージ
- 28. 純粋なHTML5ビデオ会議
- 29. 純粋なJavascriptアプリ+ Amazon S3?
- 30. Cython純粋なpythonモード
あなたが使用することができます[ Reflector](http://www.reflector.net/)を使用して、生成されたアセンブリを逆コンパイルします。 –
CまたはC++でコードを書くだけで、特別なものは必要ありません。標準準拠のC89またはC++ 03コードはすべてMSILに変換できます。 ildasm.exe –