Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nota
Panduan berikut adalah untuk penggunaan [DllImport] dan harus diikuti secara manual agar hasilnya benar. Pengguna .NET 7+ harus mempertimbangkan untuk menggunakan [LibraryImport] sebagai gantinya. Penganalisis Roslyn bawaan (diaktifkan secara bawaan) akan memberikan panduan yang diperlukan untuk atribut [LibraryImport] dalam kode Anda.
Cara nilai char, objek string, dan objek System.Text.StringBuilder dimarshall tergantung pada nilai bidang CharSet dari P/Invoke atau struktur. Anda dapat mengatur CharSet dari P/Invoke dengan menetapkan kolom DllImportAttribute.CharSet saat mendeklarasikan P/Invoke Anda. Untuk menetapkan jenis pada CharSet, tetapkan field StructLayoutAttribute.CharSet pada deklarasi kelas atau struktur Anda. Ketika bidang atribut ini tidak diatur, terserah pengkompilasi bahasa untuk menentukan mana yang CharSet akan digunakan. C#, Visual Basic, dan F# menggunakan None charset secara default, yang memiliki perilaku yang sama dengan Ansi charset.
System.Runtime.InteropServices.DefaultCharSetAttribute Jika diterapkan pada modul dalam kode C# atau Visual Basic, maka pengkompilasi C# atau Visual Basic akan memancarkan yang disediakan CharSet secara default alih-alih menggunakan CharSet.None. F# tidak mendukung DefaultCharSetAttribute, dan selalu memancarkan CharSet.None secara default.
Tabel berikut menunjukkan pemetaan antara setiap charset dan bagaimana karakter atau string diwakili saat dinamai dengan charset tersebut:
CharSet nilai |
Windows | .NET Core 2.2 dan yang lebih lama di Unix | .NET Core 3.0 dan yang lebih baru dan Mono di Unix |
|---|---|---|---|
Ansi |
char (halaman kode Windows (ANSI) default sistem) |
char (UTF-8) |
char (UTF-8) |
Unicode |
wchar_t (UTF-16) |
char16_t (UTF-16) |
char16_t (UTF-16) |
Auto |
wchar_t (UTF-16) |
char16_t (UTF-16) |
char (UTF-8) |
Pastikan Anda tahu representasi apa yang diharapkan representasi asli Anda saat memilih charset Anda.