Маршалингом (
marshalling) называется процесс преобразования типов между
управляемым кодом (managed code C#) и неуправляемым кодом (unmanaged code C++)
Из-за того, что у многих типов в
unmanaged-окружении нет таких же типов в
managed-окружении, нужно создать преобразования, которые будут конвертировать
managed-типы в
unmanaged-типы и наоборот; и как раз это и называется процессом маршалинга.
Маршалинг используется, когда Вы хотите из
C# кода вызвать
C++ код.
Например, из
C# кода обращаетесь к функциям Windows API или используете компоненты COM ...