0 / 0 / 1
Регистрация: 28.09.2008
Сообщений: 298
1

Использование своей DLL в программе.

19.04.2010, 20:15. Показов 4753. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Очень простой вопрос на который не нашел ответа: сделал dll на С#, теперь хочу подключить и

использовать его в:
1) App на С# (Win Forms)
2) App на ASP.NET (Web Forms)

в одной доке встретил подобный код: Using Mydll;
такое не прошло

в другой доке случайно видел что то с [load ...] вот только синтаксис потерян и не был

проверен.

кто может подсказать?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.04.2010, 20:15
Ответы с готовыми решениями:

Использование сторонней dll в своей библиотеке классов
Добрый день. Имеется библиотека VNE.dll, которую писал не я - см. вложение. Создан новый проект...

Использование метода из dll (C++) с callback аргументами в C# программе?
Уже всю голову сломал, не могу разобраться с тем, как сопоставить типы данных параметров. Расскажу...

Как при создании своей dll подключить туда сторонние dll
Здравствуйте, я работаю в связке C# - Oracle. Если коротко, то вопрос звучит так: "Как при создании...

Использование функции в своей программе из своей dll
Среда разработки Visual Studio 2008 Язык C++ Написал dll как в примере на сайте...

2
PavelA
19.04.2010, 22:09 2
Лучший ответ Сообщение было отмечено californis как решение

Решение

Вот пример, я думаю разберешься:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public const UInt32 EWX_LOGOFF   = 0;
public const UInt32 EWX_SHUTDOWN = 1;
public const UInt32 EWX_REBOOT   = 2;
public const UInt32 dwReason     = 0;
 
[DllImport('User32.dll')]
public static extern Boolean ExitWindowsEx(UInt32 flag,UInt32 Reason);
 
    void Page_Load(object sender, EventArgs e) {
    string to_do=Request.QueryString['to_do'];
    switch (to_do)
        {
        case 'logoff': 
     ExitWindowsEx(EWX_LOGOFF,dwReason);
     break;
    case 'off':
     ExitWindowsEx(EWX_SHUTDOWN,dwReason);
     break;
    case 'reboot':
     ExitWindowsEx(EWX_REBOOT,dwReason);
     break;
    default:
     Response.Redirect('start.aspx');
     break;
 
        }
    }
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
20.04.2010, 11:47 3
Чтобы использовать внешнюю сборку в своем проекте надо добавить ссылку на нее в проект. В VS.NET это делается через команду меню Project -> Add Reference. При компиляции из командной строки ссылка на сборку указывается через переключатель /r[eference]. Далее в своем коде надо добавить директиву using пространство_имен_сборки. Директива using всего лишь указывает компилятору префикс который он должен пробовать добавлять к неполному имени класса. Именно поэтому, например, можно использовать имя класса Page вместо полного System.Web.UI.Page. Если ни один класс из сборки не используется, то ссылка на нее не попадает в метаданные откомпилированой программы.

Следующий процесс наступает при выполнении откомпилированной программы. CLR, используя информацию из метадданых программы, должна загрузить используемые ей сборки. Полностью этот процесс описан в MSDN в статье 'How the Runtime Locates Assemblies'
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconhowruntimelocatesassemblies.asp

Вкратце - для приложения WinForm сборку можно положить в каталог с приложением, в один из ее подкаталогов или в глобальный кеш сборок (GAC). Для ASP.NET сборка должна находиться или в каталоге /bin приложения или опять же в GAC. Если сборка будет одновременно использоваться в приложениях WinForms и WebForms, то рекомендую использовать GAC.

Для размещение сборки ей необходимо присвоить сильное имя (strong name). Этот процесс подробно описан в документации.

Насчет [load] - видимо имеется в виду метод System.Reflection.Assembly.Load.

Пример kibizoid-а отноcится к вызову методов из неуправляемых DLL.
0
20.04.2010, 11:47
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2010, 11:47
Помогаю со студенческими работами здесь

Использование чужой DLL в своей программе
Доброго времени суток. Есть сторонняя DLL для работы с устройством подключенного через COM-Port. ...

Использование чужой dll в своей программе
Есть dll-ка wavcarrier.dll. Её использует программа invisible secrets для шифрования файлов и...

Использование своей DLL
VB.NET Создал свою dll. В проекте (конс. приложение) добавляю референс на нее - все нормально, все...

MSIAfterburner.NET.dll в своей программе
Доброе время сутов форумчанам. Многие пользуются программой MSI_Afterburner для отслеживания...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru