Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/65: Рейтинг темы: голосов - 65, средняя оценка - 4.78
8 / 3 / 0
Регистрация: 05.03.2011
Сообщений: 11
1

Подключение dll Библиотек на C#

05.03.2011, 11:12. Показов 12502. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте всем!!!
Как подключить к проекту написанному на C#
dll библиотеку на C# и вызвать функцию из dll - ки?
Только мне сказали что вызывать функции dll надо без использования классов(поскольку в проекте имя класа в dll-ке не должно быть известно)
Пробовал подключать dll через dllImport пишет что не найдена точка входа в функцию.
 Комментарий модератора 
А Basic тут причём? Выбирайте раздел внимательней. Тема перенесена.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2011, 11:12
Ответы с готовыми решениями:

Подключение и использование внешних dll-библиотек
написал метод, который получает данные с базы данных, его проверил, работает: using System; using...

Динамическое подключение dll библиотек в рантайме
Всем доброго времени суток. Разрабатываю проект в котором есть необходимость подключать dll...

Подключение библиотек libeay32.dll и ssleay32.dll
В общем написал програмку для отправки сообщений, но она не работает без 2х библиотек: libeay32.dll...

Подключение библиотек DLL
как в борланде подключить dll библиотеку?

12
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
05.03.2011, 17:02 2
В этой теме скачай проект, который я выложил. Testing.rar называется. Там проект с dll. Из dll программа вызывает метод Up(). Вроде как по теме будет.

Перечитал вопрос. Вообще-то не по теме. Проигнорируй просто сообщение.
0
584 / 371 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
05.03.2011, 18:32 3
Цитата Сообщение от Vl_nik Посмотреть сообщение
Только мне сказали что вызывать функции dll надо без использования классов(поскольку в проекте имя класа в dll-ке не должно быть известно)
Офигеть ))))

Тогда одна дорога - Reflection

Загружаешь сборку, загружвешь методы из всех возможных классов, ищешь нужный по названию, вызываешь через Invoke.
1
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
05.03.2011, 18:40 4
делаешь dll, комплишь её, далее создаешь другой проект, на Reference нажимаем правую кнопку жмем Add Referecnce, на вкладке Brouse добавляем в проект наш dll, далее в теле пишем using imyaDll; и пользуемся
1
8 / 3 / 0
Регистрация: 05.03.2011
Сообщений: 11
05.03.2011, 19:27  [ТС] 5
Спасибо за ответы!!
подключал сборку используя Reflection, с помощью Assembly.LoadFrom()
все работает
0
1 / 1 / 1
Регистрация: 05.09.2010
Сообщений: 32
25.03.2011, 16:54 6
Не могли бы вы написать строчку кода, вызывающую любой метод из dll? Спасибо
0
8 / 3 / 0
Регистрация: 05.03.2011
Сообщений: 11
25.03.2011, 17:08  [ТС] 7
C#
1
2
3
static Assembly SampleAssembly=Assembly.LoadFrom("Dll_name")
static MethodInfo VideoSour = SampleAssembly.GetTypes()[1].GetMethod("имя_метода");
VideoSour.Invoke(0, params);
2
1 / 1 / 1
Регистрация: 05.09.2010
Сообщений: 32
25.03.2011, 17:26 8
Спасибо

Добавлено через 6 минут
Со статическим методом получилось, спасибо.
А как можно создать экземпляр класса из dll и потом с ним работать(вызывать методы ...)
0
8 / 3 / 0
Регистрация: 05.03.2011
Сообщений: 11
25.03.2011, 17:43  [ТС] 9
Class1 obj= new class1()
obj.My_metod();
только сначала надо в проекте добавить ссылку на dll библиотеку
0
1 / 1 / 1
Регистрация: 05.09.2010
Сообщений: 32
25.03.2011, 18:08 10
А где мне взять Class1?
0
8 / 3 / 0
Регистрация: 05.03.2011
Сообщений: 11
25.03.2011, 18:19  [ТС] 11
class1- имя твоего класса в библиотеке
0
1 / 1 / 1
Регистрация: 05.09.2010
Сообщений: 32
25.03.2011, 18:35 12
вот например два метода, первый определяет или поддержывает клас(из длл) интерфейс ICarModel
Второй вызывает статический метод, возврашающий String, не принимающий никаких параметров.
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
28
29
30
31
public bool IsCarModel(Assembly asm)
        {
            Type[] types = asm.GetTypes();
            foreach (Type t in types)
            {
                foreach (Type i in t.GetInterfaces())
                {
                    if (i == typeof(ICarModel))
                    { return true; }
                }
            }
            return false;
        }
 
        
        public string GetMethod(Assembly asm)
        {
            Type[] types = asm.GetTypes();
            foreach (Type t in types)
            {
                MethodInfo[] methods = t.GetMethods();
                foreach (MethodInfo method in methods)
                {
                    if (method.Name == "Method")
                    {
                        return Convert.ToString(method.Invoke(null,null));
                    }
                }
            }
            return null;
        }
А как мне создать экземляр этого класса и обращаться к его методам, принимающим разные данные, и возвращающие тоже некоторые данные?
1
637 / 498 / 77
Регистрация: 28.07.2010
Сообщений: 895
25.03.2011, 23:49 13
Activator.CreateInstance + Reflection
1
25.03.2011, 23:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2011, 23:49
Помогаю со студенческими работами здесь

Подключение dll-библиотек
Здравствуйте. Требуется подключить dll-библиотеку к основной программе.Dll содержит простую...

Явное подключение dll библиотек
Привет всем. Недавно начал изучать c++ и столкнулся с проблемой подключения длл библиотек...

Подключение библиотек lib и dll
Здравствуйте. Подскажите, пожалуйста, как исправить такую ошибку: Ошибка 2 error LNK1104: не...

Ручное подключение динамических библиотек dll
Всем привет! Подскажите пожалуйста, как руками (то есть не через файл Windows.h) подключить dll...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru