DllImportAttribute.ExactSpelling フィールド

定義

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

public: bool ExactSpelling;
public bool ExactSpelling;
val mutable ExactSpelling : bool
Public ExactSpelling As Boolean 

フィールド値

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

[DllImport("user32.dll", CharSet = CharSet::Ansi, ExactSpelling = true)]
int MessageBoxA(IntPtr hWnd, String^ Text,
    String^ Caption, unsigned int Type);
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);
}
Friend Class NativeMethods
    <DllImport("user32.dll", ExactSpelling:=False)>
    Friend Shared Function MessageBox(hWnd As IntPtr, lpText As String,
        lpCaption As String, uType As UInteger) As Integer
    End Function
End Class

注釈

の場合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

適用対象