5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
||||||||||||||||
1 | ||||||||||||||||
Обратиться к методу библиотеки DLL04.10.2018, 01:36. Просмотров 2139. Ответов 26
Метки нет Все метки)
(
Здравствуйте.
Имеется библиотека DLL, построенная в MATLAB. Данная библиотека содержит один метод с двумя параметрами. Если добавить данную библиотеку к проекту в папку Debug, то все работает отлично. Но мне необходимо, чтобы исполняемый .exe файл работал автономно (то есть можно было бы открыть на любом компьютере и использовать полностью функционал программы). Такие действия сделаны:
То есть, как обратиться к методу моей библиотеки и передать в него два параметра? Спасибо.
0
|
|
04.10.2018, 01:36 | |
Обратиться к методу проекта через DLL Обратиться к методу
Как обратиться к методу из другого класса |
|
Строитель
|
||||||
04.10.2018, 05:47 | 2 | |||||
0
|
Супер-модератор
![]() |
||||||
04.10.2018, 12:20 | 3 | |||||
Точно так же и раньше когда DLL лежала рядом с программой. На этпа разработки добавляем ссылку на сборку, помещаем ее в ресурсы и после компиляции пользуемся одним exe файлом.
Код обработчика ResolveAssembly лучше немного изменить чтобы приложение на падало с непонятным исключением
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
|
04.10.2018, 12:29 [ТС] | 4 |
Nord790, это применить в коде Assembly ResolveAssembly(object sender, ResolveEventArgs args) или в коде обработчика события button_Click?
Добавлено через 1 минуту OwenGlendower, через using добавляем ссылку на сборку? Не получилось так...
0
|
Супер-модератор
![]() |
|
04.10.2018, 12:37 | 5 |
Alex7676, using это не добавление ссылки, а только указание пространства имен чтобы типы из него можно было использовать без указания полного имени. Ссылка добавляется через узел References в проекте. И по идее она у вас уже должна быть раз код работает в ситуации когда DLL лежит рядом с exe.
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
|
04.10.2018, 12:39 [ТС] | 6 |
OwenGlendower, а, да, так и сделано. Только без .dll файлов в папке Debug не работает.
Добавлено через 51 секунду OwenGlendower, необходимо использовать код Nord790?
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
||||||
04.10.2018, 13:07 [ТС] | 8 | |||||
OwenGlendower, да, библиотека добавлена в References, в Resources. Ранее я объявлял следующим образом:
0
|
Супер-модератор
![]() |
|
04.10.2018, 13:21 | 9 |
Alex7676, проверяйте значит как работает код метода ResolveAssembly. Возможно он не находит ресурс по указанному имени. Нужно или испарвить код формирования имени ресурса или правильно добавить DLL в ресурсы. Код из первого сообщения будет работать только если файл добавлен как embedded resource.
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
|
04.10.2018, 13:34 [ТС] | 10 |
OwenGlendower, я таким же образом сделал добавление .txt файла. Он работает. А пользовательские библиотеки - не работают.
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
|
04.10.2018, 13:52 [ТС] | 12 |
V_Monomax, возможно. Но у меня на компьютере он установлен и если делать вызов через создание нового класса, то все работает.
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
||||||
04.10.2018, 15:26 [ТС] | 14 | |||||
V_Monomax, конечно нет. Просто я для себя для понимания делаю.
Сейчас вот такое исключение в этой строке выскочило:
Дополнительные сведения: Не удается выполнить привязки исполняющей среды по нулевой ссылке Что вместо "Test.App" я должен был написать? Добавлено через 1 час 27 минут V_Monomax, название библиотеки или чего-то еще?
0
|
903 / 789 / 328
Регистрация: 08.02.2014
Сообщений: 2,386
|
|
04.10.2018, 15:43 | 15 |
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
|
04.10.2018, 15:53 [ТС] | 16 |
SeIZVeIZ, не получается
![]()
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
||||||
04.10.2018, 15:56 [ТС] | 17 | |||||
SeIZVeIZ, вот если из Debug библиотеку подключаю, то такой класс:
То есть я должен прописать:
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
|
04.10.2018, 15:57 [ТС] | 18 |
Но в итоге в переменной app получается null.
0
|
Строитель
|
|||||||||||
04.10.2018, 20:00 | 19 | ||||||||||
Библиотека:
1
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 415
|
|
04.10.2018, 20:21 [ТС] | 20 |
Nord790, спасибо за ответ! Но, к сожалению, он не помог. Видимо, с MATLAB - файлами дела обстоят иначе.
0
|
04.10.2018, 20:21 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Как обратиться к методу из другого метода внутри одного и того же класса Создание dll библиотеки в C#. Вызов классов этой библиотеки Как использовать методы библиотеки DLL, и игнорировать их, когда DLL нету? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |