Здравствуйте, Аноним, Вы писали:
А>Привет. Провожу первые эксперименты с managed С++. Сразу возник вопрос: каким образом можно превратить (следует превращать) нативный GUID в managed Guid? Думаю, что можно через конверсию GUID-а в строку, но это как-то... А>Спасибо
Смотри в MSDN "Interop Marshaling", в частности аттрибут MarshalAs.
GUID не передавал, и, честно говоря, лень пробовать. Но — GUID это структура. Определяешь её в managed коде(4 поля кажется, uint. Каждое поле определяешь с собственным аттрибутом MarshalAs.), обязательно задаешь последовательное расположение аттрибутом StructLayout[Sequential]. Передаешь её в параметре с аттрибутом MarshalAs[Struct](хотя может тебе надо передавать как указатель на структуру — тогда посмотри соответствие параметра для unmanaged в managed, однозначно void* — IntPtr ).Можешь указать аттрибут Out/In для направления передачи.
Вроде всё.
Но может для GUID можно всё проще сделать, есть value-тип Guid в Framework — посмотри, может его можно приспособить.