DllImportAttribute.ThrowOnUnmappableChar フィールドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > DllImportAttribute.ThrowOnUnmappableChar フィールドの意味・解説 

DllImportAttribute.ThrowOnUnmappableChar フィールド

マップできない Unicode 文字 (ANSI の "?" に変換される文字) が見つかったときに、例外をスローするかどうかを指定します。

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public ThrowOnUnmappableChar As Boolean
Dim instance As DllImportAttribute
Dim value As Boolean

value = instance.ThrowOnUnmappableChar

instance.ThrowOnUnmappableChar = value
public bool ThrowOnUnmappableChar
public:
bool ThrowOnUnmappableChar
public boolean ThrowOnUnmappableChar
public var ThrowOnUnmappableChar : boolean
解説解説

true の場合は、マップできない文字を相互運用マーシャラが変換するたびに例外がスローされます。false の場合は、ThrowOnUnmappableChar フィールドが無効になります。このフィールドの既定値は false です。

Windows 98 または Windows Me で実行するアンマネージ メソッドにマネージ Unicode 文字が渡された場合、このような Unicode 文字は共通言語ランタイムによって ANSI 文字に変換されます。最適マッピングを使用すると、完全一致が存在しないときに、相互運用マーシャリングが最も近い文字を提供します。たとえば、マーシャラは、ANSI 文字を許可するアンマネージ メソッドの場合、Unicode の著作権記号を 'c' に変換します。一部の文字には最適形式が存在しません。このような文字はマップできない文字といいます。マップできない文字は原則として、既定の '?'ANSI 文字に変換されます。

注意に関するメモ注意

特定の Unicode 文字は、意図せずパスを変更するおそれがある円記号 "\" など、危険な文字に変換されます。ThrowOnUnmappableChar フィールドを true に設定すると、マップできない文字があることを例外をスローして呼び出し元に通知できます。

注意に関するメモ注意

アンマネージ セーフ配列への LPSTR または ANSI Chars が要素となっているマネージ配列を渡す場合は、BestFitMapping フィールドと ThrowOnUnmappableChar フィールドの既定値を変更できません。最適マッピングは常に有効となり、例外はスローされません。この組み合わせの場合、セキュリティ モデルが損なわれるおそれがあります。

使用例使用例

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

<DllImport("My.dll", CharSet := CharSet.Ansi, _
                       BestfitMapping := False _
                       ThrowOnUnmappableChar := True)>
[DllImport("My.dll", CharSet = CharSet.Ansi, 
                       BestfitMapping = false
                       ThrowOnUnmappableChar = true)]
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DllImportAttribute クラス
DllImportAttribute メンバ
System.Runtime.InteropServices 名前空間
CharSet
BestFitMapping



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

DllImportAttribute.ThrowOnUnmappableChar フィールドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DllImportAttribute.ThrowOnUnmappableChar フィールドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS