Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408

Проверка наличия и валидности DLL при старте приложения

25.11.2015, 19:36. Показов 3239. Ответов 4

Студворк — интернет-сервис помощи студентам
Есть C#.NET DLL (моя), которая является оберткой над C++ DLL(не моя). Я использую ее(их получается) в своем приложении.

Подскажите пожалуйста, правильный, с точки зрения тру-программерского подхода, способ проверки
их наличия в директории программы при старте (хотя бы, а может и в процессе функционирования - мало ли что),
а также, способ проверки на валидность (содержат ли они, то, что нужно) или на подлинность.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.11.2015, 19:36
Ответы с готовыми решениями:

Проверка наличия DLL в заданном каталоге
Добрый день! Как можно при запуске программы (допустим по событию Form_Load) проверить наличие DLL в каталоге Windows\system32 ?

Проверка валидности строк с помошью регулярных выражений
Здравствуйте. Возникла такая проблема: есть определённый набор строк, задано регулярное выражение. Необходимо проверить валидность строк....

EF. Есть ли возможность включить обновление базы до последней миграции автоматически при старте приложения?
Добрый день. Недавно начал изучать Entity Framework для работы с базой SQL Server Compact. База генерится с помощью Code First. И...

4
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.11.2015, 19:56
Лучший ответ Сообщение было отмечено Woldemar89 как решение

Решение

Цитата Сообщение от Woldemar89 Посмотреть сообщение
способ проверки
их наличия в директории программы при старте
Ну это, думаю, самое простое, через File.Exists()
Цитата Сообщение от Woldemar89 Посмотреть сообщение
способ проверки на валидность (содержат ли они, то, что нужно) или на подлинность.
Ваша dll, как я понимаю, обертка над С++? Определить открытый интерфейс, в нем все методы-обертки, и класс в dll, его реализующий. Это если класс такой один. Или несколько интерфейсов и несколько классов. И проверять, реализует ли класс (классы) нужный интерфейс (интерфейсы).
Так же можете глянуть мою темку по MEF, может что и примените.
На подлинность - подпишите сборку строгим именем, и основное приложение сможет работать только с ней.
1
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
25.11.2015, 20:15  [ТС]
insite2012, спасибо.

Цитата Сообщение от insite2012 Посмотреть сообщение
Определить открытый интерфейс, в нем все методы-обертки, и класс в dll, его реализующий. Это если класс такой один.
Или несколько интерфейсов и несколько классов. И проверять, реализует ли класс (классы) нужный интерфейс (интерфейсы).
Так же можете глянуть мою темку по MEF, может что и примените.
На подлинность - подпишите сборку строгим именем
Хм, не думал, что это может оказаться настолько накладно, класс - один, методов - много, но, в целом, они просты.
Наверно - буду использовать последнее.

Как думаете, для C++ DLL, контрольная сумма, версия, - подойдут?

То есть в итоге:

1. Подписываем сборку C# DLL.
2. В приложении чекаем C++ DLL. (Контрольная сумма файла или\и версия).
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.11.2015, 20:18
Лучший ответ Сообщение было отмечено Woldemar89 как решение

Решение

Цитата Сообщение от Woldemar89 Посмотреть сообщение
1. Подписываем сборку C# DLL.
2. В приложении чекаем C++ DLL. (Контрольная сумма файла или\и версия).
В самом простом варианте, думаю, будет достаточно.
1
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
25.11.2015, 20:22  [ТС]
insite2012, благодарю!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.11.2015, 20:22
Помогаю со студенческими работами здесь

Создание нескольких окон при старте приложения в WPF
Эксперты, взгляните на код и оцените правильность. Есть ли здесь какие-то косяки. App.xaml <Application...

Запуск приложения при старте windows
Вообщем интересует так как сделать запуск приложения при старте windows и чтобы его можно было увидеть только в процессах на рабочем столе...

Проверка валидности e-mail в цикле
Всем доброго времени суток, помогите пожалуйста разобраться) есть код: //User input ...

Алгоритм Луна (проверка валидности кредитных карт)
Прошу помочь разобраться с алгоритмом Луна, используемый для валидности кредитных карт. Какой лучше тип использовать вместо int. Надо ли...

Ошибка при запуске приложения в случае автозапуска при старте Windows
Мне нужно иметь два способа запуска моей программы: обычный запуск с отображением формы, и скрытый запуск без отображения формы - при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru