ActiveX контрол не ставится на форму С# Windows Application
От: nikname1  
Дата: 26.11.10 13:46
Оценка:
Здравствуйте.

Я написал простой ActiveX контрол на с# по примеру взятому по ссылке:
http://www.codeproject.com/KB/miscctrl/exposingdotnetcontrols.aspx

Мой ActiveX контрол добавляется во вкладку Tools Visual Studio 2005 c помощью "Choose Item..." где я выбираю его
из списка зарегестрированых СОМ обЪектов.

Но, когда я перетягиваю его на форму проекта С# Windows Application, то получаю следующею ошибку:

Failed to create component 'AxHost'.
The error message follows: 'System.Runtime.InteropServices.COMException (0x80029C4A): Error loading type library/DLL.
(Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))...

Может кто-то подскажет что нужно сделать для того, чтобы контрол добавлялся и работал с формой
С# Windows Application?

26.11.10 20:12: Перенесено из '.NET'
Re: ActiveX контрол не ставится на форму С# Windows Applicat
От: Jolly Roger  
Дата: 26.11.10 16:03
Оценка:
Здравствуйте, nikname1, Вы писали:

N>(Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))...


Regasm MyActiveX.dll /tlb
?
"Нормальные герои всегда идут в обход!"
Re[2]: ActiveX контрол не ставится на форму С# Windows Appli
От: nikname1  
Дата: 29.11.10 09:00
Оценка:
Здравствуйте, Jolly Roger, спасибо за ответ.
Вы писали:

JR>Regasm MyActiveX.dll /tlb

JR>?

Зареестрировать мой ActiveX контрол указаной утилитой.
Но получил следующие предупреждения, несмотря на то, что MyActiveX.tlb
файл создался:

Type library exporter warning processing 'MyActiveXControl.UserControl1.get_Anchor(#0), MyActiveXControl'. Warning: Non COM visible value type 'System.Windows.Forms.AnchorStyles' is being referenced either from the type currently being exported or from one of its base types.

Type library exporter warning processing 'MyActiveXControl.UserControl1.set_Anchor(value), MyActiveXControl'. Warning: Non COM visible value type 'System.Windows.Forms.AnchorStyles' is being referenced either from the type currently being exported or from one of its base types.

Type library exporter warning processing 'MyActiveXControl.UserControl1.get_BackgroundImageLayout(#0), MyActiveXControl'. Warning: Non COM visible value type 'System.Windows.Forms.ImageLayout' is being referenced either from the type currently being exported or from one of its base types.

Type library exporter warning processing 'MyActiveXControl.UserControl1.set_BackgroundImageLayout(value), MyActiveXControl'. Warning: Non COM visible value type 'System.Windows.Forms.ImageLayout' is being referenced either from the type currently being exported or from one of its base types....


Думаю, что поэтому мой контро и не ставится на Windows Form.
Подскажите, пожалуйста, как побороть эти ворнинги.
Re[3]: ActiveX контрол не ставится на форму С# Windows Appli
От: Jolly Roger  
Дата: 29.11.10 09:31
Оценка:
Здравствуйте, nikname1, Вы писали:

N>Думаю, что поэтому мой контро и не ставится на Windows Form.


Может быть. Но чтобы быть уверенным, следовало заглянуть в tlb-файл и посмотреть, что там сгенерировано вместо указанных типов.

N>Подскажите, пожалуйста, как побороть эти ворнинги.


Так ведь причина предупреждений написана: Non COM visible value type...currently being exported Очивидно, чтобы этих предупреждений не было, не следует пытаться экспортировать Non COM visible type, разве нет?
"Нормальные герои всегда идут в обход!"
Re: ActiveX контрол не ставится на форму С# Windows Applicat
От: Jolly Roger  
Дата: 29.11.10 10:29
Оценка:
Здравствуйте, nikname1, Вы писали:

N>перетягиваю его на форму проекта С# Windows Application


Не обратил внимания сразу По-моему это не получится, на ActiveX, созданный на основе NET-компоненты, не удастся добавить ссылку в NET-же приложение. Используйте его напрямую, как NET сборку, зачем тут ActiveX?
"Нормальные герои всегда идут в обход!"
Re[2]: ActiveX контрол не ставится на форму С# Windows Appli
От: nikname1  
Дата: 29.11.10 14:51
Оценка:
Здравствуйте, Jolly Roger, большое спасибо за ответы.

Вы писали

>>Используйте его напрямую, как NET сборку, зачем тут ActiveX?


Такие требования клиента: UI мого плеера, который был написаный на С#,
переделать в ActiveX контрол. Этот контрол будет вставлятся на форму
другого приложения на С#.

Реально ли так сделать?
Re[3]: ActiveX контрол не ставится на форму С# Windows Appli
От: Jolly Roger  
Дата: 29.11.10 14:59
Оценка:
Здравствуйте, nikname1, Вы писали:

N>Такие требования клиента: UI мого плеера, который был написаный на С#,

N>переделать в ActiveX контрол. Этот контрол будет вставлятся на форму
N>другого приложения на С#.

N>Реально ли так сделать?


Сомневаюсь.

Требование довольно странное. ActiveX нужен для использования в non-NET коде, так это будет. А NET приложения смогут использовать его-же напрямую, зачем им COM-прослойка?! Вы уверены, что правильно поняли заказчика? Или может быть сам заказчик чего-то не понимает? Или я
"Нормальные герои всегда идут в обход!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.