![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Ren |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 18.2.2007 Репутация: нет Всего: нет |
Всем привет!
Создал консольное приложение, которое принимает параметры через аргументы коммандной строки. Программа работает в локальной версии, но если запустить приложение из сети выдает ошибку, что UNC не использует сетевые имена (тоесть всё, что начинается с "\\..." не поддерживает в качестве активной директории). Как выход из этой ситуации, хочу создать приложение, котрое будет в качестве COM-объекта. Зачем это необходимо? Обьясняю: мое приложение запускается из другой програмы, в параметры заносится имя файла, а моя прога уже обрабатывает этот файл на локальной машине. Как вариант, конечно можно скопировать файлы на каждый локальный ПК и юзать эго. Но если будут изменения файла, то надо будет искачть и заменять все файлы. В общем, расскажите как создать COM-объект (COM+)? Использую C#, framework 2.0. Как такие задачи решаються? Может у кого-то был опыт? Если есть ссылки по COM в .Net, а ещё лучьше примеры/алгоритмы создания таковых проектов поделитесь, пожайлуста. Зарание всем благодарин. З.Ы. Как новичок пользовался поиском, ничего подходящего не нашел. |
|||
|
||||
SpaceSpace |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: нет Всего: 10 |
чтобы сделать оболочку COM над твоей программой .NET
почитай про CCW (Com callable wrapper) и почитай про утилиту tlbexp.exe -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
Ren |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 18.2.2007 Репутация: нет Всего: нет |
Где это всё можно найти?
Добавлено через 4 минуты и 56 секунд Есть. Зацепился в MSDN. Раньше давал запрос на поиск что вроде "COM объект". А сча изменил и есть результат. |
|||
|
||||
Ren |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 18.2.2007 Репутация: нет Всего: нет |
Брр...
![]() Возможно у кого-то есть какой-либо пример с коментариями создания найпройстейшего элемента СОМ в .Net на C#? ![]() З.Ы. Извените за некоректность в терминалоги - я новичёк в этом. |
|||
|
||||
FREEDEV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 6.3.2007 Где: Украина->Одесс а Репутация: 1 Всего: 3 |
Ren, создаешь ClassLibrary , в атрибутах ставишь [ComVisible(true)] , добавляешь Strong Name
пишешь нужные тебе классы, компилируешь , регестрируешь каким хочешь способом. --------------------
Microsoft Windows Visla © |
|||
|
||||
Ren |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 18.2.2007 Репутация: нет Всего: нет |
FREEDEV, покопавшись, попробывав ... в обще с [ComVisible(true)] немного прояснилось: можна ставить как и для класа, так и для свойств, функций и т.д.:
Класс есть. Откомпилировав, получил библиотеку в .Net, а как что полноценный СОМ получился. Если в библиотеке два и более класса, у них совпадают свойства или функции (их названия, параметры), то как клиент СОМ будет их отличать? Например к приведущему коду добавлено:
И как использовать Strong Name? |
||||
|
|||||
FREEDEV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 6.3.2007 Где: Украина->Одесс а Репутация: 1 Всего: 3 |
Нужно создать snk файл и прицепить его к проекту, проще всего это сделать в properties проекта -> signing -> sign the assembly
Там же в application -> assembly information можно выставить make assembly com visible в build можно выставить Register for COM interop это для 2005 студии --------------------
Microsoft Windows Visla © |
|||
|
||||
Ren |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 18.2.2007 Репутация: нет Всего: нет |
Как проверю, отпишу. Вдруг ещё что-то по теме вспывёт.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |