DllImportAttribute.BestFitMapping フィールド
アセンブリ: mscorlib (mscorlib.dll 内)


true の場合、最適マッピングは有効になります。これ以外の場合、最適マッピングは無効になります。BestFitMapping フィールドの既定値は true です。このフィールドの設定は、System.Runtime.InteropServices.BestFitMappingAttribute 属性のすべてのレベルの設定をオーバーライドします。
Windows 98 または Windows Me で実行するアンマネージ メソッドにマネージ Unicode 文字が渡された場合、このような Unicode 文字は共通言語ランタイムによって ANSI 文字に変換されます。最適マッピングを使用すると、完全一致が存在しないときに、相互運用マーシャリングが最も近い文字を提供します。たとえば、マーシャラは、ANSI 文字を許可するアンマネージ メソッドの場合、Unicode の著作権記号を 'c' に変換します。一部の文字には最適形式が存在しません。このような文字はマップできない文字といいます。マップできない文字は原則として、既定の '?'ANSI 文字に変換されます。
![]() |
---|
特定の Unicode 文字は、意図せずパスを変更するおそれがある円記号 "\" など、危険な文字に変換されます。ThrowOnUnmappableChar フィールドを true に設定すると、マップできない文字があることを例外をスローして呼び出し元に通知できます。 |

Visual Basic の開発者は、マネージ コードで DLL 関数を定義する際、Declare ステートメントの代わりに、DllImportAttribute を使用することがあります。BestFitMapping フィールドの設定は、このような事例の 1 つです。ANSI 文字セットを指定することによって最も厳しい文字マッピング セキュリティをプラットフォーム呼び出しメソッドの定義に適用し、最適マッピングの動作を無効にし、マップできない Unicode 文字に遭遇したときに例外をスローさせる例を次に示します。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からDllImportAttribute.BestFitMapping フィールドを検索する場合は、下記のリンクをクリックしてください。

- DllImportAttribute.BestFitMapping フィールドのページへのリンク