DllImportAttribute.ExactSpelling フィールド

定義

CharSet フィールドで、指定された名前以外のエントリ ポイント名をアンマネージ DLL から共通言語ランタイムに検索させるかどうかを制御します。

C#
public bool ExactSpelling;

フィールド値

場合によっては、Visual Basic 開発者は、 ステートメントを使用する代わりに を使用DllImportAttributeDeclareして、マネージド コードで DLL 関数を定義します。 フィールドの ExactSpelling 設定は、その 1 つです。

C#
internal static class NativeMethods
{
    [DllImport("user32.dll", CharSet = CharSet.Unicode,
        ExactSpelling = true)]
    internal static extern int MessageBoxW(
        IntPtr hWnd, string lpText, string lpCption, uint uType);
}

注釈

の場合false、フィールドが に設定されている場合DllImportAttribute.CharSet、文字 A で追加されたエントリ ポイント名が呼び出され、フィールドが にCharSet.Ansi設定CharSet.Unicodeされている場合DllImportAttribute.CharSetは、文字 W で追加されたエントリ ポイント名が呼び出されます。 通常、マネージド コンパイラはこのフィールドを設定します。

次の表は、プログラミング言語によって課される既定値に基づいて、 フィールドと ExactSpelling フィールドの関係CharSetを示しています。 既定の設定はオーバーライドできますが、慎重に行ってください。

Language ANSI Unicode 自動
Visual Basic ExactSpelling:=True ExactSpelling:=True ExactSpelling:=False
C# ExactSpelling=false ExactSpelling=false ExactSpelling=false
C++ ExactSpelling=false ExactSpelling=false ExactSpelling=false

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0