Представление IUnknown в управляемом C ++ - PullRequest
1 голос
/ 24 октября 2011

Я собираю Wrapper в C ++ / CLI для статической библиотеки C, которая будет использоваться в приложении .NET через C #

У меня есть такая функция в C

long    My_COM_Interface(   PVOID hDevice,IUnknown **pUnknown);

Как объявить IUnknown ** в C ++ / CLI

для первого аргумента Я использую IntPtr, но не могу найти замену для IUknown.

У меня есть другой GUID типа COM-данных в другой функции, для меня это тоже проблема.

Пожалуйста, помогите мне найти связь для типа данных IUnknown и GUID.

Ответы [ 3 ]

1 голос
/ 25 октября 2011

Нет замены .

C ++ / CLI прекрасно понимает нативные типы.Включите правильные заголовочные файлы, и вы можете использовать IUnknown* как всегда.

0 голосов
/ 24 октября 2011

попробуйте использовать параметр как;

ref object pUnknown

и используйте его как

MyObject o = pUnknown as MyObject
0 голосов
/ 24 октября 2011

Я бы сослался на API, например,

 public static IntPtr GetIUnknownForObject(Object o);

Этот API можно просто использовать из C ++ / CLR и предлагает вам использовать IntPtr ^

...