DllImportAttribute.ExactSpelling Bidang
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengontrol apakah CharSet bidang menyebabkan runtime bahasa umum mencari DLL yang tidak dikelola untuk nama titik entri selain yang ditentukan.
public: bool ExactSpelling;
public bool ExactSpelling;
val mutable ExactSpelling : bool
Public ExactSpelling As Boolean
Nilai Bidang
Contoh
Dalam beberapa kasus, pengembang Visual Basic menggunakan DllImportAttribute, alih-alih menggunakan Declare
pernyataan , untuk menentukan fungsi DLL dalam kode terkelola.
ExactSpelling Mengatur bidang adalah salah satu kasus tersebut.
[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
Keterangan
Jika false
, nama titik entri ditambahkan dengan huruf A dipanggil saat DllImportAttribute.CharSet bidang diatur ke CharSet.Ansi
, dan nama titik entri ditambahkan dengan huruf W dipanggil saat DllImportAttribute.CharSet bidang diatur ke CharSet.Unicode
. Biasanya, kompilator terkelola mengatur bidang ini.
Tabel berikut ini memperlihatkan hubungan antara CharSet bidang dan ExactSpelling , berdasarkan nilai default yang diberlakukan oleh bahasa pemrograman. Anda dapat mengambil alih pengaturan default, tetapi lakukan dengan hati-hati.
Bahasa | ANSI | Unicode | Otomatis |
---|---|---|---|
Visual Basic | ExactSpelling:=True | ExactSpelling:=True | ExactSpelling:=False |
C# | ExactSpelling=false | ExactSpelling=false | ExactSpelling=false |
C++ | ExactSpelling=false | ExactSpelling=false | ExactSpelling=false |