DllImportAttribute.BestFitMapping 欄位

定義

將 Unicode 字元轉換成 ANSI 字元時,啟用或停用最適合對應行為。

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

欄位值

範例

在某些情況下,Visual Basic 開發人員會使用 DllImportAttribute ,而不是 Declare 語句,在 Managed 程式碼中定義 DLL 函式。 BestFitMapping設定欄位是其中一個案例。 下列範例示範如何藉由指定 ANSI 字元集、停用最適合的對應行為,以及在未對應的 Unicode 字元上擲回例外狀況,將最嚴格的字元對應安全性套用至平台叫用方法定義。

[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

備註

如果 true 為 ,則會啟用最適合的對應行為,否則會停用最適合的對應。 欄位 BestFitMapping 預設為 true 。 此欄位的設定會覆寫屬性的任何層級設定 System.Runtime.InteropServices.BestFitMappingAttribute

警告

某些 Unicode 字元會轉換成危險字元,例如反斜線 '\' 字元,這可能會不小心變更路徑。 藉由將 ThrowOnUnmappableChar 欄位設定為 true ,您可以藉由擲回例外狀況,向呼叫端發出無法套用字元的訊號。

警告

將元素為 ANSI Chars 或 LPSTR 的 Managed 陣列傳遞至 Unmanaged 安全陣列時,您無法變更 和 ThrowOnUnmappableChar 欄位所提供的 BestFitMapping 預設值。 一律會啟用最適合的對應,而且不會擲回任何例外狀況。 請注意,此組合可能會危害您的安全性模型。

適用於

另請參閱