C ++ / CLI Interop: функция COM всегда возвращает нулевой IntPtr - PullRequest
1 голос
/ 26 ноября 2010

У меня есть модуль C ++ / CLI, который использует библиотеку COM.Функция библиотеки COM возвращает указатель на объект.Подпись вызова функции COM в C ++ / CLI выглядит следующим образом:

          IntPtr p = myCOMObject->GetSettings();

В интерфейсе COM та же функция имеет следующую особенность

         virtual HRESULT STDMETHODCALLTYPE GetSettings( 
        /* [retval][out] */ void *CSettings) = 0; 

объект аргумента * CSettings является родным объектом C ++ некоторыхдругой класс создан в побочной функции GetSettings.

При вызове этой функции в C ++ / CLI.Я всегда получаю IntPtr как '0' и никакое значение не установлено к нему.Я проверил с чистым кодом C ++, я получаю правильный объект.что может быть причиной этого. Я делаю что-то не так, пожалуйста, предложите.

...