DllImportAttribute.BestFitMapping Bidang

Definisi

Mengaktifkan atau menonaktifkan perilaku pemetaan yang paling sesuai saat mengonversi karakter Unicode ke karakter ANSI.

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

Nilai Bidang

Contoh

Dalam beberapa kasus, pengembang Visual Basic menggunakan DllImportAttribute, alih-alih Declare pernyataan , untuk menentukan fungsi DLL dalam kode terkelola. BestFitMapping Mengatur bidang adalah salah satu kasus tersebut. Contoh berikut menunjukkan cara menerapkan keamanan pemetaan karakter paling ketat ke definisi metode pemanggilan platform dengan menentukan set karakter ANSI, menonaktifkan perilaku pemetaan yang paling sesuai, dan melemparkan pengecualian pada karakter Unicode yang tidak dipetakan.

[DllImport("My.dll", CharSet = CharSet::Ansi,
    BestFitMapping = false,
    ThrowOnUnmappableChar = true)]
int SomeFuncion2(int parm);
[DllImport("My.dll", CharSet = CharSet.Ansi,
    BestFitMapping = false,
    ThrowOnUnmappableChar = true)]
internal static extern int SomeFuncion2(int parm);
<DllImport("My.dll", CharSet:=CharSet.Ansi,
    BestFitMapping:=False,
    ThrowOnUnmappableChar:=True)>
Friend Shared Function SomeFuncion2(parm As Integer) As Integer
End Function

Keterangan

Jika true, perilaku pemetaan yang paling sesuai diaktifkan; jika tidak, pemetaan paling cocok dinonaktifkan. Bidang BestFitMapping secara true default. Pengaturan untuk bidang ini mengambil alih pengaturan tingkat apa pun untuk System.Runtime.InteropServices.BestFitMappingAttribute atribut .

Perhatian

Karakter Unicode tertentu dikonversi ke karakter berbahaya, seperti karakter garis miring terbalik '\', yang secara tidak sengaja dapat mengubah jalur. Dengan mengatur ThrowOnUnmappableChar bidang ke true, Anda dapat memberi sinyal keberadaan karakter yang tidak dapat dipetakan ke pemanggil dengan melemparkan pengecualian.

Perhatian

Anda tidak dapat mengubah nilai default yang disediakan oleh BestFitMapping bidang dan ThrowOnUnmappableChar saat meneruskan array terkelola yang elemennya adalah Karakter ANSI atau LPSTR ke array aman yang tidak dikelola. Pemetaan yang paling sesuai selalu diaktifkan dan tidak ada pengecualian yang dilemparkan. Ketahuilah bahwa kombinasi ini dapat membahayakan model keamanan Anda.

Berlaku untuk

Lihat juga