DllImportAttribute.ExactSpelling フィールド

定義

CharSet フィールドで、指定された名前以外のエントリ ポイント名をアンマネージ DLL から共通言語ランタイムに検索させるかどうかを制御します。Controls whether the CharSet field causes the common language runtime to search an unmanaged DLL for entry-point names other than the one specified.

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

フィールド値

場合によっては、Visual Basic 開発者が Declare ステートメントを使用する代わりに DllImportAttributeを使用して、マネージコードで DLL 関数を定義することがあります。In some cases, Visual Basic developers use the DllImportAttribute, instead of using the Declare statement, to define a DLL function in managed code. ExactSpelling フィールドの設定は、これらのケースの1つです。Setting the ExactSpelling field is one of those cases.

[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 フィールドが CharSet.Ansiに設定されているときに、文字 A と共に追加されたエントリポイント名が呼び出されます。 DllImportAttribute.CharSet フィールドが CharSet.Unicodeに設定されている場合は、W という文字が付いたエントリポイント名が呼び出されます。If false, the entry point name appended with the letter A is invoked when the DllImportAttribute.CharSet field is set to CharSet.Ansi, and the entry-point name appended with the letter W is invoked when the DllImportAttribute.CharSet field is set to the CharSet.Unicode. 通常、マネージコンパイラはこのフィールドを設定します。Typically, managed compilers set this field.

次の表は、プログラミング言語によって設定された既定値に基づいて、CharSet フィールドと ExactSpelling フィールド間のリレーションシップを示しています。The following table shows the relationship between the CharSet and ExactSpelling fields, based on default values imposed by the programming language. 既定の設定を上書きすることはできますが、注意してください。You can override the default setting, but do so with caution.

言語Language ANSIANSI UnicodeUnicode 自動Auto
Visual BasicVisual Basic ExactSpelling: = TrueExactSpelling:=True ExactSpelling: = TrueExactSpelling:=True ExactSpelling: = FalseExactSpelling:=False
C#C# ExactSpelling = falseExactSpelling=false ExactSpelling = falseExactSpelling=false ExactSpelling = falseExactSpelling=false
C++C++ ExactSpelling = falseExactSpelling=false ExactSpelling = falseExactSpelling=false ExactSpelling = falseExactSpelling=false

適用対象