|
19 / 19 / 3
Регистрация: 08.11.2010
Сообщений: 78
|
|
Подключение библиотеки08.11.2010, 13:28. Показов 10814. Ответов 19
Метки нет (Все метки)
Здравствуйте! Помогите решить проблему с подключением библиотеки.
Нужно подключить библиотеку myDrumlib.dll в программу на c# и выполнить одну функцию. По описанию к библиотеке я предположил, что она написана на с++. Теперь порядок моих действий: 1. в solution explorer выбираю add reference и добавляю dll файл, в коде добавляю using myDrumlib. Теперь если набрать myDrumlib.Drum. среда выводит подсказку какие функции в библиотеке есть. Но при выполнении кода выводится ошибка: "Could not load file or assembly 'myDrumlib.dll' or one of its dependencies.Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему. (Exception from HRESULT: 0x800736B1)"."FileLoadException was unhandled" 2. поискал похожие вопросы, решил попробовать импортировать библиотеку: using System.Runtime.InteropServices; [DllImport("myDrumlib.dll")] public static extern bool StartMeasure(); выдает ошибку "Unable to load DLL 'myDrumlib.dll': Приложение не было запущено, поскольку оно некорректно настроено."."DllNotFoundException was unhandled" Программирую в c# совсем чуть-чуть, поэтому могу не знать простейших вещей. Заранее спасибо.
0
|
|
| 08.11.2010, 13:28 | |
|
Ответы с готовыми решениями:
19
Ошибка подключение библиотеки Подключение С/С++ библиотеки к проекту на C# |
|
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
|
|
| 08.11.2010, 13:56 | |
|
Когда пишешь DLLImport, библу нужно положить в ту же директорию, где и находится exe файл приложения.
0
|
|
|
19 / 19 / 3
Регистрация: 08.11.2010
Сообщений: 78
|
|
| 08.11.2010, 14:07 [ТС] | |
|
Я знаю, она там и находится, я для надежности записал ее туда, куда только можно, даже в system32.
Не знаю, может быть это поможет решить проблему: Для работы с этой библиотекой раньше использовалась другая программа, написанная на с++. Пробовал ее запустить на разных компьютерах - запускается, выполняется даже там, где нет .NET framework. А вот на моем при запуске выдает ошибку .NET framework initialization error. unable to find a version of the runtime to run this application. Стоит 4. Попробовал открыть исходники этой программы и при выполнении он мне опять показал фигу в виде FileLoadException was unhandled. Как я понимаю что-то надо явно переустановить, но что именно?
0
|
|
|
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
|
|
| 08.11.2010, 14:14 | |
|
0
|
|
|
61 / 60 / 10
Регистрация: 11.08.2010
Сообщений: 199
|
|||||||||||
| 08.11.2010, 14:40 | |||||||||||
|
Ranvasrog, если у вас библиотека написана на С++ (на unmanaged C++, а не С++.NET), то чтобы использовать оттуда какой-нибудь метод:
1
|
|||||||||||
|
19 / 19 / 3
Регистрация: 08.11.2010
Сообщений: 78
|
||
| 08.11.2010, 15:10 [ТС] | ||
_Sergei_, я все так и делаю, как вы сказали. Пишет "Unable to load DLL Не найден указанный модуль." А как узнать, что в библиотеке этот метод объявлен именно так, как вы сказали? И если он так не объявлен я не смогу использовать библиотеку на c#?
0
|
||
|
36 / 36 / 2
Регистрация: 08.11.2010
Сообщений: 119
|
|
| 08.11.2010, 15:12 | |
|
Чтобы использовать функцию, нужно же знать ее сигнатуру и имя!как по-другому то?
0
|
|
|
19 / 19 / 3
Регистрация: 08.11.2010
Сообщений: 78
|
|
| 08.11.2010, 15:23 [ТС] | |
|
LilLoco, сигнатуру функции я знаю. Она есть в сопроводительном файле. Сигнатура, кстати, включает в себя имя
0
|
|
|
61 / 60 / 10
Регистрация: 11.08.2010
Сообщений: 199
|
|
| 08.11.2010, 16:15 | |
|
Ну вот когда я удалил свою библиотеку на С++ из папки где находится исполняемый файл на C# получил ошибку "Unable to load DLL 'Decoder.dll': Не найден указанный модуль. (Exception from HRESULT: 0x8007007E)" Видимо вы все-таки что-то не туда размещаете и приложение не видит библиотеки.
Библиотека должна быть по <путь к проекту>\bin\debug\библиотека.dll (это если у вас debug по умолчанию стоит)
0
|
|
|
19 / 19 / 3
Регистрация: 08.11.2010
Сообщений: 78
|
|
| 08.11.2010, 19:10 [ТС] | |
|
К сожалению, библиотека находится в нужной папке и название я копировал копипастом. Уже всю голову сломал. Подозреваю во всем виной конфликт 4 .Net framework и библиотеки если такое вообще возможно. Завтра попробую поговорить с человеком, который мне это прислал, может что-нибудь проясню
0
|
|
|
19 / 19 / 3
Регистрация: 08.11.2010
Сообщений: 78
|
|
| 08.11.2010, 22:15 [ТС] | |
|
в ходе тестирования выяснилось, что кривая dll
0
|
|
|
19 / 19 / 3
Регистрация: 08.11.2010
Сообщений: 78
|
|
| 09.11.2010, 10:11 [ТС] | |
|
SSTREGG, не, если я ее выложу в общий доступ меня кто-то повесит
Еще раз спасибо.А, чем вы, если не секрет, смотрели начинку dll?
0
|
|
|
19 / 19 / 3
Регистрация: 08.11.2010
Сообщений: 78
|
||||||
| 12.11.2010, 18:06 [ТС] | ||||||
|
В общем, наверное, докопался я до сути. Библиотека написана под dotnet. Но для своего правильного функционирования она использует функции и процедуры из другой библиотеки, которая на unmanaged C++. Что можно с этим поделать? Пробую подключить все используемые в ней функции через pinvoke, примерно таким образом:
![]() Пока все процедуры неуправляемой библиотеки, которые используются управляемой, я подключил. Структуры пока только не описал. Ошибка до сих пор та же.
0
|
||||||
|
|
||
| 12.11.2010, 18:32 | ||
|
Через pinvoke подключаются только неуправляемые функции.... То что в самой сборке дергаются ф-ии из unmanaged dll означает лишь то, что нужно эту unmanaged dll'ку закинуть в PATH проекта. Вы вообще определяете, с чем работаете? dll сборка или dll native?
0
|
||
|
Почетный модератор
|
||
| 12.11.2010, 18:45 | ||
|
sigmov, основная DLL написана на C++, обертка над ней на C++\CLI.
![]() Ranvasrog, попробуй работать сразу с native dll.
0
|
||
|
|
|||
| 12.11.2010, 19:12 | |||
Но делать для управлемой функции точку входа чтобы использовать ее опять же из NET через PInvoke это юмор чистой пробы ))))
0
|
|||
|
Почетный модератор
|
|
| 12.11.2010, 19:15 | |
|
0
|
|
| 12.11.2010, 19:15 | |
|
Помогаю со студенческими работами здесь
20
Подключение внешней библиотеки программно Подключение библиотеки lame_enc.dll Подключение dll библиотеки к стороннему приложению VK API подключение библиотеки и пример использования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
|
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
На примере нетипового документа разработанного в конфигурации КА2.
В качестве источника данных указан регистр накопления, в который записываются данные о. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|