C++/C# СОМ объекты, созданные другими СОМ-объектами
От: klswww  
Дата: 21.11.07 09:42
Оценка:
Проблема заключается в следующем.
Есть некий менеджер (брокер), создающий СОМ-объекты, поддерживающие некий базовый СОМ-интерфейс, скажем, IBase. Любое приложение, создав СОМ-объект брокера, может затем получить у него имеющиеся в наличии объекты как IBase* (согласно IDL описанию интерфейса брокера). Сам IBase дан во включаемом (include) описании. Действие происходит на Windows платформе.

До сих пор вся работало как часы, поскольку использовались только С++ коды. Проблема случилась при попытке создать и получить IBase объкеты из С# приложения. По включённым в references проекта dll-ам VS2005 нагенерило соответствующие C# описания, далее объект менеджера благополучно создаётся, даёт всю информацию, но как дело доходит до попытки получить IBase-объекты, маршаллинг ругается на возвращаемый указатель "Specified cast is invalid" и даёт exception. Никакой другой информации получить не удаётся.

Есть идеи, в чём тут может быть дело ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.