タグ

相互運用マーシャリンに関するrryuのブックマーク (6)

  • P/Invoke時におけるマーシャラの動作(マーシャリング) - KrdLab's blog

    P/Invoke において,データをC#側からアンマネージ側へ渡す,またはアンマネージ側から受け取るとき,どのような動作をしているのかについて調べてみました. まず P/Invoke について,MSDN の中で参考になりそうなページを挙げます. クラス、構造体、および共用体のマーシャリング 文字列のマーシャリング 型の配列のマーシャリング 各種のマーシャリング プラットフォーム呼び出しのデータ型 これらのドキュメントを読んでいると,値型,参照型,blittable 型,非 blittable 型といった,型に関する用語が出てきます. 以下にまとめてみました (blittable の語源だけはわかりませんでしたが...). 値型 (値型) 値型とは,System.ValueType から派生する型のことであり,インスタンスがスタック上に割り当てられます. また値型の変数は,参照型の変数のよう

    P/Invoke時におけるマーシャラの動作(マーシャリング) - KrdLab's blog
  • 構造体のポインタを引数に受け取る関数の呼び出し - はらぐろブログラマン

    構造体のポインタを引数に受ける関数には、2通りあります。 引数に渡したポインタに情報を格納して返す 引数に渡したポインタから情報を受け取る この2通りの方法について説明します。 Win32APIのGetSystemTime()を呼び出す 「引数に渡したポインタに情報を格納して返す」タイプの呼び出しです。 Win32APIのGetSystemTime()は、引数に構造体SYSTEMTIMEのポインタを受け取り、そのアドレスに対して現在のシステム時刻を格納します。これをC#でマーシャリングしてみます。 Win32APIでのSYSTEMTIME構造体は以下のように定義されています。 typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute;

  • Break Free of Code Deadlocks in Critical Sections Under Windows

    For this discussion, I am using Windows Mobile 5 for the Smartphone. The version is not critical, though, as the data-access concepts presented remain the same regardless of version. After installing the .NET Compact Framework 2.0 with SP2 and the appropriate Windows Mobile SDK, you must also install ActiveSync (for Windows® XP) or Windows Mobile Device Center (for Windows Vista®). These are neede

    Break Free of Code Deadlocks in Critical Sections Under Windows
  • .NET アプリケーションのパフォーマンスとスケーラビリティの向上 - 第 5 章 「マネージ コ ード パフォーマンスの向上」

    Recommendations on how to design and develop custom applications using the Microsoft platform Each patterns & practices offering contains a combination of written documentation and re-usable source code. Many also include a reference implementation. As the guidance is being developed it is reviewed and approved by internal Microsoft product teams and by external customers and partners. This produc

    .NET アプリケーションのパフォーマンスとスケーラビリティの向上 - 第 5 章 「マネージ コ ード パフォーマンスの向上」
  • 値型に対する既定のマーシャリング

    整数や浮動小数点数などの多くの値型は blittable 型なのでマーシャリングは必要ありません。その他の非 blittable 型の場合は、マネージ メモリ内とアンマネージ メモリ内でその表現が異なるため、マーシャリングが必要です。さらに他の型については、相互運用の境界を越えた明示的な書式指定が必要です。 ここでは、書式指定された値型に関する次の情報を示します。 プラットフォーム呼び出しで使用される値型 COM 相互運用機能で使用される値型 このトピックでは、書式指定した型について説明するだけでなく、マーシャリングの動作が通常とは異なるシステム値型についても確認します。 書式指定された型は複合型であり、メモリ内で自身のメンバのレイアウトを明示的に制御する情報を含んでいます。メンバのレイアウト情報は、StructLayoutAttribute 属性によって設定されます。レイアウトとして、次

    値型に対する既定のマーシャリング
    rryu
    rryu 2009/05/27
    マーシャリング関連でちらほら出てくる「書式指定された型」の定義のあるところ。日本語訳が不適切なので定義と気付けない。「書式設定された」というのはformattedの訳で微妙な感じ。
  • 相互運用マーシャリング

    このセクションは、プラットフォーム呼び出し、COM 相互運用機能、またはその両方を使用してデータのマーシャリングを行うプログラマを対象としています。この 2 つの機構では、マーシャリング規則と既定のデータ型に多少の違いがあります。 プラットフォーム呼び出しを使用する場合は、このセクションで示す文字列、配列、クラス、構造体、共用体、および各種のデータ型の例を参照してください。 COM 相互運用機能を使用する場合は、このセクションで示す相互運用ラッパーのカスタマイズ方法を参照してください。 相互運用マーシャリングは、メソッドの呼び出し時に、マネージ メモリとアンマネージ メモリの間で、そのメソッドの引数および戻り値としてデータがどのように受け渡しされるのかを制御します。相互運用マーシャリングは、共通言語ランタイムのマーシャリング サービスによって実行される実行時の処理です。 このセクションでは

    相互運用マーシャリング
  • 1