Мой 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, спасибо за ответ.
Вы писали:
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
Здравствуйте, nikname1, Вы писали:
N>Думаю, что поэтому мой контро и не ставится на Windows Form.
Может быть. Но чтобы быть уверенным, следовало заглянуть в tlb-файл и посмотреть, что там сгенерировано вместо указанных типов.
N>Подскажите, пожалуйста, как побороть эти ворнинги.
Так ведь причина предупреждений написана: Non COM visible value type...currently being exported Очивидно, чтобы этих предупреждений не было, не следует пытаться экспортировать Non COM visible type, разве нет?
"Нормальные герои всегда идут в обход!"
Re: ActiveX контрол не ставится на форму С# Windows Applicat
Здравствуйте, nikname1, Вы писали:
N>перетягиваю его на форму проекта С# Windows Application
Не обратил внимания сразу По-моему это не получится, на ActiveX, созданный на основе NET-компоненты, не удастся добавить ссылку в NET-же приложение. Используйте его напрямую, как NET сборку, зачем тут ActiveX?
"Нормальные герои всегда идут в обход!"
Re[2]: ActiveX контрол не ставится на форму С# Windows Appli
Здравствуйте, Jolly Roger, большое спасибо за ответы.
Вы писали
>>Используйте его напрямую, как NET сборку, зачем тут ActiveX?
Такие требования клиента: UI мого плеера, который был написаный на С#,
переделать в ActiveX контрол. Этот контрол будет вставлятся на форму
другого приложения на С#.
Реально ли так сделать?
Re[3]: ActiveX контрол не ставится на форму С# Windows Appli
Здравствуйте, nikname1, Вы писали:
N>Такие требования клиента: UI мого плеера, который был написаный на С#, N>переделать в ActiveX контрол. Этот контрол будет вставлятся на форму N>другого приложения на С#.
N>Реально ли так сделать?
Сомневаюсь.
Требование довольно странное. ActiveX нужен для использования в non-NET коде, так это будет. А NET приложения смогут использовать его-же напрямую, зачем им COM-прослойка?! Вы уверены, что правильно поняли заказчика? Или может быть сам заказчик чего-то не понимает? Или я