DllImportAttribute.BestFitMapping Alan
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Unicode karakterleri ANSI karakterlerine dönüştürürken en uygun eşleme davranışını etkinleştirir veya devre dışı bırakır.
public: bool BestFitMapping;
public bool BestFitMapping;
val mutable BestFitMapping : bool
Public BestFitMapping As Boolean
Alan Değeri
Örnekler
Bazı durumlarda, Visual Basic geliştiricileri yönetilen kodda DllImportAttributebir DLL işlevi tanımlamak için deyimi yerine Declare
öğesini kullanır.
BestFitMapping Alanı ayarlamak bu durumlardan biridir. Aşağıdaki örnekte ANSI karakter kümesini belirterek, en uygun eşleme davranışını devre dışı bırakarak ve eşlenmemiş Unicode karakterlerinde özel durum oluşturarak platform çağırma yöntemi tanımlarına en katı karakter eşleme güvenliğinin nasıl uygulanacağı gösterilmektedir.
[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
Açıklamalar
, en uygun eşleme davranışı etkinse true
; aksi takdirde en uygun eşleme devre dışı bırakılır. Alan BestFitMapping varsayılan olarak şeklindedir true
. Bu alanın ayarları, özniteliğin tüm düzey ayarlarını System.Runtime.InteropServices.BestFitMappingAttribute geçersiz kılar.
Dikkat
Bazı Unicode karakterler, bir yolu yanlışlıkla değiştirebilen ters eğik çizgi '\' karakteri gibi tehlikeli karakterlere dönüştürülür. alanını olarak true
ayarlayarakThrowOnUnmappableChar, bir özel durum oluşturarak çağırana eşlenmeyen bir karakterin varlığına işaret edebilirsiniz.
Dikkat
öğeleri ANSI Chars veya LPSTR olan yönetilen bir diziyi BestFitMapping yönetilmeyen güvenli bir diziye geçirirken ve ThrowOnUnmappableChar alanları tarafından sağlanan varsayılan değerleri değiştiremezsiniz. En uygun eşleme her zaman etkindir ve hiçbir özel durum oluşturulur. Bu birleşimin güvenlik modelinizi tehlikeye atabileceğini unutmayın.