powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Реализация c# COM для использования как DllSurrogate в c#
7 сообщений из 7, страница 1 из 1
Реализация c# COM для использования как DllSurrogate в c#
    #39749372
Ciplusor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Есть c# AnyCPU проект к которому нужно подключить левую x86 библиотеку. Сразу скажу - все примеры и статьи на первых 15-ти страницах гугла и яндекса проверил - ни одно не работает именно для c#. Для Delphi, C++ - COM успешно импортируется и вызывает как удаленный объект.

Итак, я создал COM проект, к нему собралась библиотека типов, сам COM зарегистрирован в списке доступных COM. Когда я пытаюсь подключить этот COM к проекту чтобы среда создала промежуточный Interop Dll - она попросту ругается что .NET сборка в .NET проекте должна быть подключена как ссылка, т.е. требует прямое подключение самой dll от COM в проект - но если я ее подключаю, то логично что он ее просто импортирует как библиотеку типов и использует в разрядности своего процесса.

Перепробовал уйму вариантов tlbimp, tlbexp, regasm - по результату одно и то же, "библиотека типов была экспортирована из сборки .NET и не может быть использована в качестве ссылки". Насколько я понимаю нужно как-то отвязать библиотеку от .NET - т.е. получается что сам .NET сам с собой не дружит. Неужели нет вариантов .NET interop COM использовать в .NET?
...
Рейтинг: 0 / 0
Реализация c# COM для использования как DllSurrogate в c#
    #39749409
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ciplusor.NET - т.е. получается что сам .NET сам с собой не дружит
это документированное поведение
...
Рейтинг: 0 / 0
Реализация c# COM для использования как DllSurrogate в c#
    #39749780
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ciplusor,

подлючай динамически.
...
Рейтинг: 0 / 0
Реализация c# COM для использования как DllSurrogate в c#
    #39749786
askabout
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

перезвони мне, хватить прятаться
...
Рейтинг: 0 / 0
Реализация c# COM для использования как DllSurrogate в c#
    #39750521
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ciplusor,

Сильно не вникал, но может быть Вам нужно [dllimport ...] ?

http://www.dream-land.by/developer/csharp/win_api/
...
Рейтинг: 0 / 0
Реализация c# COM для использования как DllSurrogate в c#
    #39750602
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CiplusorВсем привет. Есть c# AnyCPU проект к которому нужно подключить левую x86 библиотеку. Сразу скажу - все примеры и статьи на первых 15-ти страницах гугла и яндекса проверил - ни одно не работает именно для c#. Для Delphi, C++ - COM успешно импортируется и вызывает как удаленный объект.

Итак, я создал COM проект, к нему собралась библиотека типов, сам COM зарегистрирован в списке доступных COM. Когда я пытаюсь подключить этот COM к проекту чтобы среда создала промежуточный Interop Dll - она попросту ругается что .NET сборка в .NET проекте должна быть подключена как ссылка, т.е. требует прямое подключение самой dll от COM в проект - но если я ее подключаю, то логично что он ее просто импортирует как библиотеку типов и использует в разрядности своего процесса.

Перепробовал уйму вариантов tlbimp, tlbexp, regasm - по результату одно и то же, "библиотека типов была экспортирована из сборки .NET и не может быть использована в качестве ссылки". Насколько я понимаю нужно как-то отвязать библиотеку от .NET - т.е. получается что сам .NET сам с собой не дружит. Неужели нет вариантов .NET interop COM использовать в .NET?что из этого верно?
...
Рейтинг: 0 / 0
Реализация c# COM для использования как DllSurrogate в c#
    #39751140
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так не будет работать?

dynamic com = Type.GetTypeFromProgID("MyDLL");

если учесть, что второй опциональный параметр в GetTypeFromProgID - имя сервера, то COM-объект передается как ссылка. Да и работает такой метод с MSOffice любой разрядности.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Реализация c# COM для использования как DllSurrogate в c#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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