Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Com Interop


Автор: megel 23.8.2009, 21:50
исходный класс (сервер с++) :

Код


interface IABC : IUnknown
{
         HRESULT A(int a);
         HRESULT B(int a);
         HRESULT С(int a);
}



на c# (клиент) делаю свой интерфейс :

Код

[Guid("81BDCBCA-64D4-426d-AE8D-AD0147F4275C"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IABC
{
         void A(int a);
         void B(int a);
         void С(int a);
}


все работает нормально.
но можно ли использовать в интерфейсе на C# 
не все методы, а только те которые мне нужно?
(мож какие-то аттрибуты поставить ?)

чтоб было так :

Код

[Guid("81BDCBCA-64D4-426d-AE8D-AD0147F4275C"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IABC
{
         void A(int a); // метод A
         void C(int a); // метод C
}



редактировать код сервера не могу.
базовый класс интерфейса на сервере - IUnknown.










Автор: Partizan 23.8.2009, 22:43
megel, а зачем руками тот же код писать, если можно просто сгенерить Interop-сборку по COM-серверу. Сгенерили сборку - поправили ручками...удалили ненужные методы из интеропки....по идее всё хорошо должно быть, если я ни в чём не ошибаюсь smile

Автор: megel 23.8.2009, 22:57
я com только начал изучать.
ты имееш ввиду tlbexp или tlbimp (не помню что нужно) ?
я делаю враппер для directx а он не экпортирует d3d.dll.
может я что не так делаю?
и если бы экпортировался как править сбоку?

Автор: Partizan 23.8.2009, 23:10
Цитата

ты имееш ввиду tlbexp или tlbimp (не помню что нужно) ?


tlpbimp


Цитата

и если бы экпортировался как править сбоку? 


ildasm/ilasm

Автор: megel 23.8.2009, 23:13
tlbimp пишет d3d.dll is not valiled type library

Автор: megel 24.8.2009, 09:09
а всетаки можно ли  сделать как я имел ввиду в начале?
у меня все структуры и энумы заменены на свои,
поэтому мне проще не генерировать interop com сборку, а самому написать.

Автор: megel 24.8.2009, 23:21
может быть кто-нибудь пробовал генерировать tlb файл из хеадеров directX?

MIDL не помогает выдает ощибку обработки .h файлов.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)