DllImportAttribute.BestFitMapping 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.
Mengaktifkan atau menonaktifkan perilaku pemetaan yang paling cocok 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 cocok, 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 cocok diaktifkan; jika tidak, pemetaan yang paling sesuai 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 bidang ke ThrowOnUnmappableChartrue
, 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 pas selalu diaktifkan dan tidak ada pengecualian yang dilemparkan. Ketahuilah bahwa kombinasi ini dapat membahayakan model keamanan Anda.