Здравствуйте, Философ, Вы писали:
Ф>Здравствуйте, Regular_Man, Вы писали:
R_M>>На самом деле все есть. Вот здесь, например, можно подробно почитать https://habrahabr.ru/post/114953/
Ф>Чувак там скромно умалчивает о том, что структуры в шарпе нельзя выделить в куче, и все эти fixed arrays лягут на стэке.
С чего ты взял?
Marshal.AllocHGlobal
Ф>Да и есть в шарпе, например нет struct union — именно они наибольшую головную боль вызывают.
С чего ты взял? Есть StructLayout(LayoutKind.Explicit) и [FieldOffset(x)]
Ф>Я каждый раз, когда сталкиваюсь с Interop'ом задумываюсь о том, чтобы его писать на C++ CLI.
Интероп действительно проще на C++ делать, но это сразу дофига проблем дает — несколько языков в проекте, ограничения на платформы и много подобной "радости".
Если интеропа мало, то лучше один раз написать обертки на C# и как можно быстрее уйти от ковыряния с байтами и указателями.
Если весь проект это большой интероп, то лучше на C++ CLI, он для такого и был сделан.
Ф>Из-за вот такого, и из-за списков строк.
Какого еще списка строк?