Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Визуальный ActiveX контрол на C# / 18 сообщений из 18, страница 1 из 1
16.06.2015, 10:21
    #38984476
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Можно ли на шарпе сделать аналог .OCX контрола? Для использования из VBA Excel или Access. Чтобы был доступен на палитре компонентов и т.д.
...
Рейтинг: 0 / 0
16.06.2015, 10:40
    #38984491
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Можно , но на свой страх и риск, поскольку это недокументированная возможность.
...
Рейтинг: 0 / 0
16.06.2015, 11:42
    #38984569
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
мда странно, что Майкрософт собственные технологии делает несовместимыми между собой
...
Рейтинг: 0 / 0
16.06.2015, 12:35
    #38984640
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Eoltмда странно, что Майкрософт собственные технологии делает несовместимыми между собойВсе совместимо. Просто MS принуждает писать под FW, поэтому не разрабатывает инструментов, облегчающих разработку COM/ActiveX.
...
Рейтинг: 0 / 0
16.06.2015, 12:56
    #38984679
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Читаю ссылки в гугле, почти все бред вроде How do I Create an ActiveX (COM) in C#?
Большинство вообще не понимает чем отличается ActiveX от COM DLL
...
Рейтинг: 0 / 0
16.06.2015, 13:20
    #38984730
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
В общем прояснил для себя вопрос, вот тут что-то похожее на правду Нужна MFC обертка на С++

авторЕсли речь идет о простом компоненте повторного использования - то все сказано в первом ответе. Если же речь идет об интерфейсном элементе - то все не так просто. C# в чистом виде не дает такой возможности. Но можно сделать контрол на C#, а потом сделать для него обертку на С++ с использованием MFC. В MFC есть класс CWinFormsControl, оборачивающий WinForms контролы в CWnd. Далее нужно, используя возможности WinForms, сделать обычный контрол на C#, назовем его, к примеру MyLib.MyControl. Далее, создать ActiveX MFC проект, в свойствах проекта включить поддержку CLR и добавить ссылку на сборку с контролом.
...
Рейтинг: 0 / 0
17.06.2015, 05:02
    #38985338
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
EoltВ общем прояснил для себя вопрос, вот тут что-то похожее на правду Нужна MFC обертка на С++

авторЕсли речь идет о простом компоненте повторного использования - то все сказано в первом ответе. Если же речь идет об интерфейсном элементе - то все не так просто. C# в чистом виде не дает такой возможности. Но можно сделать контрол на C#, а потом сделать для него обертку на С++ с использованием MFC. В MFC есть класс CWinFormsControl, оборачивающий WinForms контролы в CWnd. Далее нужно, используя возможности WinForms, сделать обычный контрол на C#, назовем его, к примеру MyLib.MyControl. Далее, создать ActiveX MFC проект, в свойствах проекта включить поддержку CLR и добавить ссылку на сборку с контролом. Оно и без MFC-обёртки в принципе работает, за исключением некоторых мелочей .
...
Рейтинг: 0 / 0
17.06.2015, 10:17
    #38985460
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Алексей КОно и без MFC-обёртки в принципе работает, за исключением некоторых мелочей .[/quot]

А есть рабочий пример? Выложи сюда пожалуйста.
...
Рейтинг: 0 / 0
17.06.2015, 12:09
    #38985639
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
EoltА есть рабочий пример? Выложи сюда пожалуйста.Я же давал ссылку. Там есть рабочий пример.
...
Рейтинг: 0 / 0
17.06.2015, 12:45
    #38985700
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Алексей КEoltА есть рабочий пример? Выложи сюда пожалуйста.Я же давал ссылку. Там есть рабочий пример.

по ссылке что угодно, но только не рабочий пример ActiveX COM компонента
...
Рейтинг: 0 / 0
17.06.2015, 15:05
    #38985891
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
EoltАлексей Кпропущено...
Я же давал ссылку. Там есть рабочий пример.

по ссылке что угодно, но только не рабочий пример ActiveX COM компонентаПо каким признакам определил? Обратил внимание на то, что экспортируемый класс является потомком класса Control, который реализует эти интерфейсы? Впрочем, как знаешь...
...
Рейтинг: 0 / 0
17.06.2015, 15:27
    #38985913
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Алексей КПо каким признакам определил? Обратил внимание на то, что экспортируемый класс является потомком класса Control, который реализует эти интерфейсы? Впрочем, как знаешь...

Не реализован dual-интерфейс, нет IDispatch и еще кучи всего. Соотвественно это нигде не будет работать, где общение с COM идет через таблицы виртуальных методов. Это не пример ActiveX, это пример COM-библиотеки.
...
Рейтинг: 0 / 0
17.06.2015, 15:53
    #38985945
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Eoltнет IDispatchEoltСоотвественно это нигде не будет работать, где общение с COM идет через таблицы виртуальных методов позднее сязывание.Поправил.
EoltЭто не пример ActiveX, это пример COM-библиотеки.Ты бредишь.
...
Рейтинг: 0 / 0
17.06.2015, 15:56
    #38985954
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Алексей КEoltЭто не пример ActiveX, это пример COM-библиотеки.Ты бредишь.

авторЧитаю ссылки в гугле, почти все бред вроде How do I Create an ActiveX (COM) in C#?
Большинство вообще не понимает чем отличается ActiveX от COM DLL

Попробуй импортировать свой "контрол" в любой COM-контейнер. MS Office, 1C, InternetExplorer и посмотри что он тебе скажет на твои попытки.
...
Рейтинг: 0 / 0
17.06.2015, 16:15
    #38985978
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Eoltнет IDispatch
EoltСоотвественно это нигде не будет работать, где общение с COM идет через таблицы виртуальных методов.
у меня когнитивный диссонанс
...
Рейтинг: 0 / 0
17.06.2015, 16:47
    #38986030
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
EoltАлексей Кпропущено...
Ты бредишь.

авторЧитаю ссылки в гугле, почти все бред вроде How do I Create an ActiveX (COM) in C#?
Большинство вообще не понимает чем отличается ActiveX от COM DLL

Попробуй импортировать свой "контрол" в любой COM-контейнер. MS Office, 1C, InternetExplorer и посмотри что он тебе скажет на твои попытки.Я бы не был столь уверен, если бы это не работало много лет в промышленной эксплуатации. В моём случае оно работает в Delphi, кое что тестировалось в Excel VBA.

Всё это "законно" хостится в IE . В других ActiveX-средах это тоже можно хостить, но "незаконно".
...
Рейтинг: 0 / 0
17.06.2015, 18:12
    #38986167
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
Алексей КЯ бы не был столь уверен, если бы это не работало много лет в промышленной эксплуатации. В моём случае оно работает в Delphi, кое что тестировалось в Excel VBA.

Всё это "законно" хостится в IE . В других ActiveX-средах это тоже можно хостить, но "незаконно".

Причем тут промышленная эксплуатация. Для работы в VBA Office ActiveX должен поддерживать dual-интерфейс, если IDispatch не реализован, среда не будет с ним работать. То что в Дельфи достаточно одного только IUnknown совершенно не интересует.
...
Рейтинг: 0 / 0
18.06.2015, 05:00
    #38986424
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Визуальный ActiveX контрол на C#
EoltАлексей КЯ бы не был столь уверен, если бы это не работало много лет в промышленной эксплуатации. В моём случае оно работает в Delphi, кое что тестировалось в Excel VBA.

Всё это "законно" хостится в IE . В других ActiveX-средах это тоже можно хостить, но "незаконно".

Причем тут промышленная эксплуатация. Для работы в VBA Office ActiveX должен поддерживать dual-интерфейс , если IDispatch не реализован, среда не будет с ним работать. То что в Дельфи достаточно одного только IUnknown совершенно не интересует.Да ты одолел уже. Оттуда:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
    [ComVisible(true)]
    [Guid("D783DC48-8FB0-4fe9-BDC2-0CEE3F5E8921")]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)] // <--- Это что, как думаешь?
    public interface IMyInterface
    {
        [DispId(1)]
        void ShowMessage(string msg);
    }
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Визуальный ActiveX контрол на C# / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]