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

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

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

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

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

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

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

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

Попробуй импортировать свой "контрол" в любой COM-контейнер. MS Office, 1C, InternetExplorer и посмотри что он тебе скажет на твои попытки.
...
Рейтинг: 0 / 0
Визуальный ActiveX контрол на C#
    #38985978
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltнет IDispatch
EoltСоотвественно это нигде не будет работать, где общение с COM идет через таблицы виртуальных методов.
у меня когнитивный диссонанс
...
Рейтинг: 0 / 0
Визуальный ActiveX контрол на C#
    #38986030
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Визуальный ActiveX контрол на C#
    #38986167
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ бы не был столь уверен, если бы это не работало много лет в промышленной эксплуатации. В моём случае оно работает в Delphi, кое что тестировалось в Excel VBA.

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

Причем тут промышленная эксплуатация. Для работы в VBA Office ActiveX должен поддерживать dual-интерфейс, если IDispatch не реализован, среда не будет с ним работать. То что в Дельфи достаточно одного только IUnknown совершенно не интересует.
...
Рейтинг: 0 / 0
Визуальный ActiveX контрол на C#
    #38986424
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Визуальный ActiveX контрол на C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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