Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Вывести на экран приемные часы врача в заданный день недели https://www.cyberforum.ru/ csharp-beginners/ thread1347030.html
Нужно написать программу, а я новичек. Само расписание: Понедельник: 9:00-13:00 Вторник: 13:00-16:00 Среда: 9:00-13:00 Четверг: 13:00-16:00 Пятница: 9:00-16:00 Суббота: не работает...
C# Спроектировать и реализовать приложение для игры Civilization
Помогите с решением :scratch: C#. Спроектировать и реализовать приложение для игры Civilization. Каждая клетка игрового поля может быть либо равниной, либо лесом, либо рекой. Любая клетка...
C# Имеются две функции в виде строк, нужно перемножить их и получить новую функцию в виде строки
Доброго времени суток, имеются две функции в виде строк, нужно перемножить их и получить новую функцию в виде строки. Собственно каким образом это можно реализовать, есть ли какая-то библиотека для...
C# Определить, лежит ли точка внутри заштрихованной области Дана точка на плоскости с координатами (X, Y). Составить программу, которая выдает одно из сообщений "Да", "Нет", "На границе" в зависимости от того, лежит ли точка внутри заштрихованной области, вне... https://www.cyberforum.ru/ csharp-beginners/ thread1346973.html
C# Постройте таблицу значений функции y=f(x) https://www.cyberforum.ru/ csharp-beginners/ thread1346969.html
Постройте таблицу значений функции y=f(x) для х с шагом h. Если в некоторой точке x функция не определена, то выведите на экран сообщение об этом. Спасибо большое! y=\frac{ln(x-2)}{\sqrt{5x+1}}
C# Округление в c#
Доброго времени. Проверяю работу калькулятора, но у калькулятора только семь цифр, при делении выходит за пределы и он значения округляет. Например, он выдает: 9999999/50.9=196463,6. Однако, если я...
C# Разбор логических выражений
Привет всем. Помогите сделать разбор выражений математической логики (конъюнкция, дизъюнкция, импликация). Есть примерная грамматика, не знаю как прогонять выражение и программировать все в целом.
C# Dataset. "Cannot find table 0." Здравствуйте. Пытаюсь добавить строки в datatable. В конструкторе в свойствах dataset добавил таблицу (Table1). Потом делаю так: for (int i = 1; i <= CSV_Struct.Count - 1; i++) {... https://www.cyberforum.ru/ csharp-beginners/ thread1346938.html
C# Console - Перехват текста https://www.cyberforum.ru/ csharp-beginners/ thread1346937.html
Мне нужно что бы когда печатал текст юзер в консоли он сохранялся в string, как такое осуществить?
C# Снова об уровнях доступа классов Всем привет! У меня есть класс Main, а также есть класс A и класс B. Как сделать так чтобы класс B был виден исключительно классу А? Не хочется использовать структуру Nested. Из Main хотелось бы... https://www.cyberforum.ru/ csharp-beginners/ thread1346904.html
14 / 31 / 19
Регистрация: 20.08.2013
Сообщений: 717
0
.NET 3.x

Как использовать методы библиотеки DLL, и игнорировать их, когда DLL нету?

05.01.2015, 18:13. Просмотров 1073. Ответов 4
Метки (Все метки)

Как использовать методы библиотеки DLL , и игнорировать их когда DLL нету
Что нужно , мне нужно так чтоб проверялось наличие библиотеки
если она есть - то обьвленные методы функции можно было использовать
как только библиотеки нету - то все обьявленные функции не использовать
при этом программа написала что библиотеки нету и
Код приложения Console_Test_Libraty.exe

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
 
using swich_lib;
 
namespace Console_Test_Libraty
{
    class Program
    {
        static void Main()
        {
            Console.BackgroundColor=ConsoleColor.DarkCyan;
            Console.Clear();
            Console.ForegroundColor=ConsoleColor.White;
            Console.Title = "Тест библиотек";
 
            Assambly_dll_exist("swich_lib.dll");
        }
 
 
        private const string myclass_assambly = "swich_lib.test_class";
        static void Assambly_dll_exist(string file_dll)
        {
            string fi = Environment.CurrentDirectory + "\\" + file_dll;
            Assembly dll=null;
            try
            {
                dll = Assembly.LoadFile(fi);
            }
            catch (Exception ex)
            {
                
                //Console.WriteLine(ex.Message);
                Console.WriteLine("Библиотека отсутствует : "+dll.FullName);
                Console.ReadKey(true);
            }
            Type myclass = null;
            try
            {
                myclass = dll.GetType(myclass_assambly);
                if (myclass==null)
                    throw new Exception("Не удаеться загрузить: " + myclass_assambly);
            }
            catch (Exception ex)
            {
 
                Console.WriteLine(ex.Message);
                Console.ReadKey(true); ;
            }
 
            
 
            /*MethodInfo[] m = myclass.GetMethods();
            if (m.Length<5)
                return;*/
            object instance = Activator.CreateInstance(myclass);
            object[] parameters = {true, "Ура получилось", 2};
 
            MethodInfo mi = null;
            //MethodAccessException activ_metod=new MethodAccessException();
            try
            {
                mi = myclass.GetMethod("metod_testy");
                
            }
            catch (Exception ex)
            {
 
                Console.WriteLine(ex.Message);
                Console.ReadKey(true); ;
            }
 
            try
            {
                mi.Invoke(instance, parameters); // это я не понял 
                                                              // мне нужно просто использовать метод metod_testy("ляляля")
                                                             // Как это сделать ?
            }
            catch (Exception ex)
            {
 
                Console.WriteLine(ex.Message);
                Console.ReadKey(true); ;
            }
  
        }
    }
}

Это код библиотеки swich_lib.dll
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace swich_lib
{
    public class test_class
    {
        public void metod_testy(string str)
        {
            Console.WriteLine(" Если этот текст вывело то значит");
            Console.WriteLine(" библиотека проверена и метод metod_testy");
            Console.WriteLine(" используеться шас выводя str в приложении");
            Console.WriteLine(" ///////////////////////////////\n\n");
            Console.WriteLine(str);
            
            Console.ReadKey(true);
        }
    }
}
Чтоб не выводило как вот на фото
а написала что нету библиотеки
да и все

а когда библиотека будет выполняло метод metod_testy з библиотеки

Помогите пожалуйста, скинте пример

Вернуться к обсуждению:
Как использовать методы библиотеки DLL, и игнорировать их, когда DLL нету?
0
Миниатюры
Как использовать методы библиотеки DLL, и игнорировать их, когда DLL нету?  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2015, 18:13
Готовые ответы и решения:

Как использовать подпрограммы из библиотеки <.DLL> в программах?
Как использовать подпрограммы из библиотеки &lt;.DLL&gt; в программах на Visual C++, (статически) если...

Как указатели из библиотеки dll на с++ использовать в delphi
Добрый день. Вопрос состоит в следующем, у меня есть библиотека на c++, из которой нужно утащить...

Как заставить программу использовать \system32\shell32.dll, а не \путь к проге\Interop.Shell32.dll
Это неудобно для Portable программы..

Где взять библиотеки JSCore.dll и WebKitCore.dll
Доброго времени суток. Скачал ExpressoBrowser-master, пытаюсь запустить через SharpDevelop 4.4,...

4
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.