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

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

30.03.2013, 19:15. Показов 7977. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru