Поделиться через


Маршаллинг строк

При необходимости вызов платформы копирует строковые параметры, преобразуя их из формата .NET Framework (Юникод) в неуправляемый формат (ANSI). Так как управляемые строки неизменяемы, вызов платформы не копирует их из неуправляемой памяти в управляемую память при возврате функции.

В следующей таблице перечислены параметры маршаллинга строк, описание их использования и ссылка на соответствующий пример .NET Framework.

Струна Описание Образец
По значению. Передает строки в качестве входных параметров. MsgBox
В результате. Возвращает строки из неуправляемого кода. строки
По ссылке. Передает строки в качестве параметров in/Out с помощью StringBuilder. Буферы
В структуре по значению. Передает строки в структуре, являющейся параметром In. структуры
В структуре через ссылку (char*). Передает строки в структуре, которая используется как входной и выходной параметр. Неуправляемая функция ожидает указатель на буфер символов, а размер буфера является членом структуры. строки
В структуре, передаваемой по ссылке (char[]). Передает строки в структуре, которая используется как входной и выходной параметр. Неуправляемая функция ожидает встроенный буфер символов. OSInfo
В классе по значению (char*). Передает строки в классе (класс является параметром In/Out). Неуправляемая функция ожидает указатель на буфер символов. OpenFileDlg
В классе по значению (char[]). Передает строки в классе (класс является параметром In/Out). Неуправляемая функция ожидает встроенный буфер символов. OSInfo
Как массив строк по значению. Создает массив строк, передаваемых по значению. Массивы
Как массив структур, в которых строки представлены в виде значений. Создает массив структур, содержащих строки, и массив передается по значению. Массивы

См. также