Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 30.03.2013
Сообщений: 12

импорт функций из DLL

30.03.2013, 19:15. Показов 8028. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, решил я попрактиковаться в анализе программ, в ходе возникла проблема. В решетке особо не шарю, только на уровне "О! Это же как в С++, наверное означает тоже самое". Так вот, программа импортирует несколько процедур из динамически подключаемой библиотеки:
C#
1
2
3
4
5
6
7
8
    [DllImport("SysCPP_DLL.dll")]
    private static string jaja();
 
    [DllImport("SysCPP_DLL.dll")]
    private static string smilewind();
 
    [DllImport("SysCPP_DLL.dll")]
    private static string medok();
Я пробовал вызывать данные функции из своей программы, но ничего не получилось: вылезло исключение DllNotFoundExeption. Как можно вызвать функции?
P.S. После переваривания проги дизассемблером, обнаружилось, что все функции(за исключением 1) возвращают некие константы. 1 функция же содержит в себе некий алгоритм, эту фонкцию мне и нужно вызвать\выцепить.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2013, 19:15
Ответы с готовыми решениями:

Импорт DLL
Есть DLL, в которой определён namespace DLL_test, а в программе нужно импортировать функции из этой DLL. Вся проблема в том, что namespace...

Импорт из dll
В dll есть функция, возвращающая строку в стиле С char const* __cdecl fn() импортирую её public static extern IntPtr...

Импорт функции из dll
Доброго времени суток. Есть dll на с++ с некоторой функцией такого вида: extern "C" __declspec(dllexport) void...

11
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
30.03.2013, 19:47
хоть бы инфу об исключении прочел - DllNotFoundException
Исключение, которое выбрасывается в случае невозможности найти библиотеку DLL, указанную при импорте DLL.
в целом все правильно. указывай лишь полный путь к длл.ну и параметры и возвращаемые значения функций тоже должен передавать.
0
0 / 0 / 0
Регистрация: 30.03.2013
Сообщений: 12
30.03.2013, 19:58  [ТС]
Цитата Сообщение от Winhttp22 Посмотреть сообщение
хоть бы инфу об исключении прочел - DllNotFoundException
в целом все правильно. указывай лишь полный путь к длл.ну и параметры и возвращаемые значения функций тоже должен передавать.
В том-то и дело, что эта ошибка означает не только то, что длл не найден. Потому что 100% длл лежит в одной папке с приложением. Есть мысль, что она каким-то образом защищена. Все параметры и имена указаны правильно
0
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
30.03.2013, 20:14
да я тоже ложил в одну папку - нифига. надо полный путь указывать - Ошибка при подключении посторонней DLL
0
0 / 0 / 0
Регистрация: 30.03.2013
Сообщений: 12
31.03.2013, 08:22  [ТС]
Цитата Сообщение от Winhttp22 Посмотреть сообщение
да я тоже ложил в одну папку - нифига. надо полный путь указывать - Ошибка при подключении посторонней DLL
Все равно - такая-же ошибка
0
0 / 0 / 0
Регистрация: 30.03.2013
Сообщений: 12
31.03.2013, 08:26  [ТС]
вот, кстати, длл-ка с функциями.
P.S. Все функции присутствуют в либе.
Вложения
Тип файла: rar SysCPP_DLL.rar (44.4 Кб, 38 просмотров)
0
Заблокирован
31.03.2013, 10:08
Цитата Сообщение от nikita_gdi Посмотреть сообщение
В общем, решил я попрактиковаться в анализе программ, в ходе возникла проблема. В решетке особо не шарю, только на уровне "О! Это же как в С++, наверное означает тоже самое". Так вот, программа импортирует несколько процедур из динамически подключаемой библиотеки:
C#
1
    [D
Я пробовал вызывать данные функции из своей программы, но ничего не получилось: вылезло исключение DllNotFoundExeption. Как можно вызвать функции?
P.S. После переваривания проги дизассемблером, обнаружилось, что все функции(за исключением 1) возвращают некие константы. 1 функция же содержит в себе некий алгоритм, эту фонкцию мне и нужно вызвать\выцепить.
Ищет dll в GAC
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
31.03.2013, 10:10
Подключением библиотеки С/С++ на С# или так Работа с SATA портами средствами библиотеки PortIO32.dll
0
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
31.03.2013, 13:13
собственно тоже самое...
ТС скорее всего делает что то нетак...
0
0 / 0 / 0
Регистрация: 30.03.2013
Сообщений: 12
03.04.2013, 14:44  [ТС]
_lunar_, Не работает
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
05.04.2013, 00:18
что именно не работает?
C#
1
2
3
4
5
6
7
8
9
10
const string path = "SysCPP_DLL.dll";
 
[DllImport(path)]
static extern string jaja();
 
[DllImport(path)]
static extern string smilewind();
 
[DllImport(path)]
static extern string medok();
Есть какое-либо описание функций или документация к библиотеке?
0
Заблокирован
05.04.2013, 02:07
Цитата Сообщение от nikita_gdi Посмотреть сообщение
DllNotFoundExeption
из этого понятно, что dll не найдены.
CLR will search the dll in your assembly's directory first, then search the dll in directories listed in PATH environment variable.
Т.е. длл должна лежать либо в папке с exe, либо в директориях прописанных в PATH.

Добавлено через 8 минут
dumpbin.exe /EXPORTS Путь к длл\SysCPP_DLL.dll > ExportsList.txt
смотри точные имена или обращайся по номеру.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2013, 02:07
Помогаю со студенческими работами здесь

Импорт метода из Dll написанной на C++
Всем привет! Вот какая проблема. Нужно вызвать метод из Dll написанный на c++. Вот как выглядит его прототип: USTEXPORT USTFUNC...

Импорт функции из DLL написанной на С++
Есть dll файл написанный на С++ (Visual Studio) Работал с этой библиотекой в Autoit (скриптовый язык). Сейчас хочу сделать вызов из...

Импорт dll(C++) в dll(C#)
Во общем нужно из c# dll'ки вызвать функцию с c++ dll'ки. Написал вот так вот - не работает( // c#(GetData_x32.dll) //...

Неуправляемая DLL библиотека. Импорт, создание класса библиотеки
По курсовой нужно воспользоваться неуправляемой dll. Сразу скажу, возможно много где ошибаюсь в связи с узкими знаниями в этом...

Импорт dll функций
Всем привет. Задался вопросом скорости работы вызовов из неуправляемых библиотек. Есть неявный P/INVOKE в смешанном коде, есть...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru