翻訳と辞書
Words near each other
・ プラットフォーム (コンピュータ)
・ プラットフォーム (コンピューティング)
・ プラットフォーム (地質学)
・ プラットフォーム (自動車)
・ プラットフォームゲーム
・ プラットフォーム・ゲーム
・ プラットフォーム・コントローラー・ハブ
・ プラットフォーム・スペシャルティ・プロダクツ・コーポレーション
・ プラットフォーム事業
・ プラットフォーム事業者
プラットフォーム呼び出し
・ プラットフォーム特化モデル
・ プラットフォーム独立モデル
・ プラットフォーム補給船
・ プラットフォーム非依存
・ プラットプラット
・ プラットホーム
・ プラットホーム (Salyuの曲)
・ プラットホーム (映画)
・ プラットホーム事業者


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

プラットフォーム呼び出し : ウィキペディア日本語版
P/Invoke
P/Invoke(Platform Invoke、プラットフォーム呼び出し)とは、.NET Frameworkにおける共通言語基盤 (CLI) の機能の一つであり、マネージコードから動的ライブラリ内のネイティブコードを呼び出すことを可能にするものである。受け渡しされるデータ型は、必要であればCLIによって適切に変換されるが、メタデータによってプログラマーが変換方法を指定することもできる。こうしたデータの変換をマーシャリングという。
== 例 ==
P/Invokeの宣言は、System.Runtime.InteropServices.DllImportAttribute属性をメソッドの宣言につけることで行う。
次のC#コード例では、user32.dll内に定義されているFindWindow関数を呼び出している。

using System.Runtime.InteropServices;
namespace Example

このように、P/Invokeで宣言したメソッドは通常のメソッドのように呼び出すことができる。
intdoubleのような型はアンマネージコードが直接解釈することができるため、コピーされずにメモリに固定されたまま直接渡される(blittable型)。一方、stringboolのような型はマネージコードとアンマネージコードとの間で表現方法が異なるため、CLIによって変換処理(マーシャリング)が行われる(非blittable型)〔Blittable 型と非 Blittable 型 〕。
また、DllImportのフィールドを指定することで、文字列のキャラクタセット、呼び出し規約、エラー処理などといった既定の動作を変更することができる。例えば、次の宣言ではメソッド名とは異なる名前の関数を呼び出し対象とするよう指定している。

// ShellExecuteのアンマネージシグネチャは HINSTANCE ShellExecute(HWND, LPCTSTR, LPCTSTR, LPCTSTR, LPCTSTR, INT)
EntryPoint="ShellExecute")
static extern IntPtr UnmanagedFunctionWithNewName(
IntPtr hWnd,
string lpVerb,
string lpFile,
string lpParameters,
string lpDirectory,
int nShowCmd
);


抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「P/Invoke」の詳細全文を読む

英語版ウィキペディアに対照対訳語「 Platform Invocation Services 」があります。



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.