Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Замечание
Следующие указания по [DllImport] использованию должны быть вручную выполнены для получения правильных результатов. Пользователям .NET 7+ следует рассмотреть возможность использования [LibraryImport] вместо этого. Встроенный анализатор Roslyn (включен по умолчанию) предоставит необходимые рекомендации для атрибута [LibraryImport] в коде.
Способ маршалинга значений char, объектов string и объектов System.Text.StringBuilder зависит от значения поля CharSet, связанным как с P/Invoke, так и со структурой. Вы можете задать CharSet для P/Invoke, задав поле DllImportAttribute.CharSet при объявлении P/Invoke. Чтобы установить CharSet для типа, задайте StructLayoutAttribute.CharSet поле в объявлении вашего класса или структуры. Если эти поля атрибута не заданы, компилятор языка определяет, какой CharSet из них следует использовать. C#, Visual Basic и F# используют None набор символов по умолчанию, который ведет себя так же, как Ansi набор символов.
Если применяется System.Runtime.InteropServices.DefaultCharSetAttribute к модулю в коде C# или Visual Basic, компилятор C# или Visual Basic будет выдавать предоставленный CharSet по умолчанию код вместо использования CharSet.None. F# не поддерживает DefaultCharSetAttributeи всегда выдает CharSet.None по умолчанию.
В следующей таблице показано сопоставление между каждым набором знаков и способом представления символа или строки при преобразовании с использованием этого набора.
Значение CharSet |
Виндоус | .NET Core 2.2 и более ранних версий в Unix | .NET Core 3.0 и более поздних версий и Mono в Unix |
|---|---|---|---|
Ansi |
char
(кодовая страница Windows (ANSI) по умолчанию системы) |
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) |
Убедитесь, что вы знаете, какое представление ожидается вашей внутренней кодировкой при выборе набора символов.