DllImportAttribute.ThrowOnUnmappableChar 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.
ANSI "?" karakterine dönüştürülen, uygulamaz bir Unicode karakterde özel durum oluşturma özelliğini etkinleştirir veya devre dışı bırakır.
public: bool ThrowOnUnmappableChar;
public bool ThrowOnUnmappableChar;
val mutable ThrowOnUnmappableChar : bool
Public ThrowOnUnmappableChar As Boolean
Alan Değeri
Örnekler
Bazı durumlarda, Visual Basic geliştiricileri deyimini kullanmak yerine yönetilen kodda bir DLL işlevi tanımlamak için öğesini Declare
kullanırDllImportAttribute.
ThrowOnUnmappableChar 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
true
birlikte çalışma sıralayıcısı her eşlenemez karakteri dönüştürdüğünde bir özel durum oluştuğundan emin olmak için; false
alanının devre dışı bırakıldığını ThrowOnUnmappableChar gösterir. Bu alan varsayılan olarakdır false
.
Dikkat
Bazı Unicode karakterleri, ters eğik çizgi '\' karakteri gibi tehlikeli karakterlere dönüştürülür ve bu da yanlışlıkla bir yolu değiştirebilir. alanını olarak true
ayarlayarakThrowOnUnmappableChar, özel durum oluşturarak çağırana eşlenmeyen bir karakterin varlığına işaret edebilirsiniz.
Dikkat
Öğeleri ANSI Karakterleri veya LPSTR'ler olan yönetilen bir diziyi yönetilmeyen güvenli bir diziye geçirirken ve ThrowOnUnmappableChar alanları tarafından BestFitMapping sağlanan varsayılan değerleri değiştiremezsiniz. En uygun eşleme her zaman etkindir ve özel durum uygulanmaz. Bu birleşimin güvenlik modelinizi tehlikeye atabileceğini unutmayın.