Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для BaredJJ
19 / 18 / 7
Регистрация: 16.05.2017
Сообщений: 447

Использование dll с зависимостями

31.01.2021, 19:27. Показов 2125. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

У меня был проект dll для работы с графикой на C++ и проект на C# WPF использующий это dll. Эта связка работала нормально. Я решил выделить из dll загрузку объектов в отдельную библиотеку и сделав рефакторинг, переместил часть кода в static library. Настроил все. Теперь схема проекта такая:
1. Satic library
2. Dll использует static library
3. C# импортирует dll.

Проблема заключается в том, что я получаю System.DllNotFoundException при попытке обратиться к dll в шарповом коде, хотя dll находиться в одном каталоге с exe файлом. Интересней то, что все работает корректно, если я убираю обращение к методам в static library. Я полагаю что я скорее всего как то не до конца сконфигурировал dll. Статическая библиотека и динамическая собираются без ошибок. Использую Visual Studio 2019. Есть какие ни будь мысли?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.01.2021, 19:27
Ответы с готовыми решениями:

Использование функций DLL из другой DLL
Ребята подскажите имеется hscli.DLL hscli.LIB и hscli.H , собираю свою DLL-ку , которая использует функции hscli.DLL мои...

Использование String Tables в .dll(.dll.mui) (Для VB .NET)
Здравствуйте. Нужно извлечь(а потом запоковать) таблицу строк(string tables ). Допустим есть файл explorerframe.dll.mui из...

Использование String Tables в .dll(.dll.mui) (Для C#)
Здравствуйте. Нужно извлечь(а потом запоковать) таблицу строк(string tables ). Допустим есть файл explorerframe.dll.mui из...

26
263 / 152 / 33
Регистрация: 29.06.2019
Сообщений: 1,528
01.02.2021, 15:50
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от BaredJJ Посмотреть сообщение
Изначально была dll которая использовала assimp.lib и часть иходников assimp.
тем более всё было жёстко связано...
Цитата Сообщение от BaredJJ Посмотреть сообщение
Я вырезал код использующий assimp из dll и поместил его в static lib.
ну и куда её теперь, как подключали к C#? тут может и связываете неправильно lib'у на С++ к С#?..
Цитата Сообщение от BaredJJ Посмотреть сообщение
lib. Так же в новую библиотеку добавил зависимости assimp.lib и часть исходников assimp.
уверены, что всё добавили или что-то забыли?
p.s.
я статическую либу на С++ к C# не подключала - да и не уверена, что возможно и нормально... если бы мне такое надо было бы - я бы заворачивала C++код в COM (чтобы 2 разных языка подключить др. к др. не-средствами dll, как вы указали, что ушли от первоначального варианта)...
повторю свои сомнения - как вы надеетесь статическую либу (ваша новая архитектура) на C++ подключать во время JIT-компиляции?.. CLR вообще на такое способна? (если либа статическая на C++) - не пробовала, поэтому сомневаюсь...

Добавлено через 3 минуты
Цитата Сообщение от Recrut_rf Посмотреть сообщение
в винде Ну то есть, есть у меня файл Makefile - в нём вроде как прописаны все зависимости, а что с ним дальше делать? через какую прогу запускать чтоб проект получить?
находясь в открытой папке, где этот makefile - запустить make из коммандной строки... или прописать эту комманду для .bat файла в папке с source и makefile - и запустить .bat файл... точную строку не помню (надо или не надо путь прописывать к makefile...) ... но главное условие - надо находиться в папке с этим makefile'ом... у меня получалось тестово... сейчас повторять для проверки не буду... но работало
0
 Аватар для Recrut_rf
388 / 334 / 65
Регистрация: 14.10.2014
Сообщений: 1,443
01.02.2021, 15:57
Цитата Сообщение от JeyCi Посмотреть сообщение
запустить make из коммандной строки
Так и делал и получал в ответ - утилита make не обнаружена - походу её отдельно устанавливать надо - я почему то думал, что при установке Qt она тоже установится (ну вроде как make - qmake - одно и тоже) - похоже я сильно-сильно глючил....
0
263 / 152 / 33
Регистрация: 29.06.2019
Сообщений: 1,528
01.02.2021, 16:01
Цитата Сообщение от Recrut_rf Посмотреть сообщение
утилита make не обнаружена
вот до неё вроде полный путь и писала , даже не смотря на то, что путь к ней был установлен в PATH c:\msys32\mingw32\bin... кстати она у меня не make, а mingw32-make.exe... ставилась давно со всем MSYS2
0
 Аватар для Recrut_rf
388 / 334 / 65
Регистрация: 14.10.2014
Сообщений: 1,443
01.02.2021, 16:06
Цитата Сообщение от JeyCi Посмотреть сообщение
mingw32-make.exe
это ж компилятор, ааааа ну понятно вроде как

JeyCi, спасибо за инфу
0
263 / 152 / 33
Регистрация: 29.06.2019
Сообщений: 1,528
01.02.2021, 16:08
Цитата Сообщение от Recrut_rf Посмотреть сообщение
вроде как make - qmake - одно и тоже
не совсем
qt метаобъектный компилятор - там вроде какие-то свои навороты... не буду сейчас ни спорить, ни вспоминать - не работаю пока с этим
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
01.02.2021, 16:17

Не по теме:

Цитата Сообщение от BaredJJ Посмотреть сообщение
Я как то один раз собирал либы через CMake
А на винде других приятных аналогов нету


Цитата Сообщение от JeyCi Посмотреть сообщение
находясь в открытой папке, где этот makefile - запустить make
make - линуксовый(и не только) приколяс, его на винде официально нет
Самое простое - найти CMake файл проекта, а уже от него делать нужный проект, обычно во всех нормальных либах есть CMake версия проекта
0
263 / 152 / 33
Регистрация: 29.06.2019
Сообщений: 1,528
01.02.2021, 16:25
Цитата Сообщение от JeyCi Посмотреть сообщение
ставилась со всем MSYS2
Цитата Сообщение от JeyCi Посмотреть сообщение
работало
читайте,
ваши доводы не ко мне - ненавижу повторять ответы - время однако

Добавлено через 2 минуты
и ТС пропал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2021, 16:25
Помогаю со студенческими работами здесь

Использование Dll
Извините за нубский вопрос. Мне чтобы определиться, распланировать дальнейшие действия нужно знать, можно ли использовать одну DLL из...

Использование DLL
Недавно увидел, как сделать dll библиотеку. Ну вот я ее сделал и она нормально скомпилировалась, вот только при подключении библиотеки к...

Использование DLL
Доброго времени суток! Относительно недавно мне сказали (не знаю правда или нет) про то что можно писать dll в различных ЯП, а после...

Использование DLL
Доброго времени суток. Есть DLL (создана на C#). Как использовать ее в проекте? HMODULE hDLL =...

Использование .dll
Приветствую, Господа! Получил .dll файлик. Regsvr32 file.dll загружает удачно, но библиотека недоступна как COM-объект (CreateObject =...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru