Вторая часть рассказа о том, как привлечь силы native code и native memory в дотнет. В первой части мы говорили о C++/CLI и о тесной дружбе managed runtime с COM. Вернёмся к тому, что умеет сам язык C#: PInvoke и C-style pointers. В чём это проще, а в чём хитрее; почему это универсальнее; какой код на самом деле unsafe; и как построить сложную unmanaged структуру данных, не выходя из C#.