|
179 / 165 / 21
Регистрация: 12.02.2013
Сообщений: 410
|
|
Использование DLL31.03.2013, 21:09. Показов 1169. Ответов 10
Метки нет (Все метки)
Ребят, привет!
Решил побаловаться и научиться создавать библиотеки DLL/LIB. С либом - все в порядке получилось - либу собрал, в другом проекте её заюзал. Проблема с длл. Что сделал: 1. Собрал DLL - засунул её в C:\Windows\system32 (чтобы переменную окружения не клепать новую) 2. Подключил Хедер в проект, использующий DLL. И вот беда: компилиться - компилится. А вот сборка не проходит: main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall mydll::Foo: rint(void)" (?print@Foo@mydll@@QAEXXZ) в функции _mainПодскажите, где втупляю?) Thanks in advance Блин, я, впрочем, понимаю, где втупляю, для сборки моего проекта, использующего DLL, нужно определение, но проект его не видит, как решить проблему правильно? Хм, вообщет это библиотека динамической компоновки - какого хрена оно должно у меня компоноваться сейчас. Запутался. Добавлено через 12 минут Понял) Библиотеки импорта не подключил (lib). Щас проверю как отразится замена dll на результе работы приложения. А пока вопрос таков: есть ли где-нибудь поистине современный источник (было бы здорово, если подробный), в котором здорово рассказывается о современных подходах работы с DLL (обо всех аспектах, чтобы урывками не читать отовсюду). Я имею в виду, например, что COM - не очень щас моден, вроде. Тем не менее - распределенность самого приложения и масштабирование/модификация без пересборки - идея классная. Буду благодарен
0
|
|
| 31.03.2013, 21:09 | |
|
Ответы с готовыми решениями:
10
Использование .DLL Использование DLL C++ в C# |
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
|
|
| 01.04.2013, 01:11 | |
|
при создании длл
используй перед функциями extern "C" почитай http://www.xserver.ru/computer/sredaprogr/msvc/2/
1
|
|
|
179 / 165 / 21
Регистрация: 12.02.2013
Сообщений: 410
|
|
| 01.04.2013, 10:16 [ТС] | |
|
Спасибо, старина, вчера, кстати, с библиотекой импорта попробовал - сборка - норм. Но запуск не удается. Грит, на компе нет dll нужной, хотя засунул её в system32, которая в PATH по дефолту указана. В недоумении.
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||
| 01.04.2013, 10:25 | ||
|
Загрузка DLL может "обломиться" не только потому, что загрузчик не нашел саму эту DLL, но и из-за того, что не найдена какая-либо другая либа, от которой твоя DLL зависит (т.е. если твоя DLL подгружает - возможно, неявно! - какую-то еще DLL.... а та может подгружать еще... и так далее). Короче, загрузка будет выполнена успешно в том и только в том случае, если будет успешно загружен не только модуль "твоей" DLL, но и все модули, от которых он зависит (а для них - действует то же самое правило).
1
|
||
|
179 / 165 / 21
Регистрация: 12.02.2013
Сообщений: 410
|
|
| 01.04.2013, 12:09 [ТС] | |
|
Да, это справедливое замечание. Но у меня тестовая DLL - класс с единственной функой print))) Утилиту эту посмотрю сегодня вечером дома, спасибо
0
|
|
|
|
||
| 01.04.2013, 13:03 | ||
|
0
|
||
|
179 / 165 / 21
Регистрация: 12.02.2013
Сообщений: 410
|
|
| 01.04.2013, 14:04 [ТС] | |
|
-=ЮрА=-, вот все, что написано, мне ясно вполне. Попробую описать свои ощущения. До сих пор я использовал C++ (куча книг + практика): код - транслятор - компоновщик - единый исполняемый модуль на выходе.
Теперь я хочу научиться созданию таких вещей, как распределенные программы с взаимозаменяемыми компонентами и т.д. При этом, задумываюсь о том, что, скажем, моё приложение (пусть использующее OpenGL-библиотеки), должно работать и на других компах. Познавая графику я у себя запускал все без проблем - на других компах - ругань, которую описал выше. Добавлю, что, как я понял, вариаций на тему - множество (COM, в частности, от которого, вроде, современные разработчики нос воротят). Я знаю, что знаю C++. Потому что я изучал его последовательно. Теперь хочу освоить эту технологию. Отсюда вытекает мой главный вопрос. Какой источник мог бы пролить свет на все вопросы, связанные с этим искусством? Потому попытки урывками что-то слепить, беря чуток оттуда/да отсюда - мне не дадут четкого понимания вопроса. Скачал вчера Хоара, чота там по MVC++, в расчете на то, что там будет все подробно на эту тему - еще на смотрел. Порекомендуй какие-нибудь ресурсы - по-настоящему хорошие? Сори за ошибки орфографические - на работе не оч. удобно писать - спешил. Добавлено через 15 минут Не Хоара, а Хортона)))
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 01.04.2013, 14:37 | |
|
ITcrusader, а классику - Джеффри Рихтер, Windows для профессионалов - ты уже читал? Если нет - гугл в помощь.
1
|
|
|
|
||
| 01.04.2013, 14:40 | ||
|
Не по теме: ITcrusader, под MVC подразумевалось Model-view-controller?
0
|
||
|
179 / 165 / 21
Регистрация: 12.02.2013
Сообщений: 410
|
|
| 01.04.2013, 15:02 [ТС] | |
|
-=ЮрА=-, под MVC подразумевал Microsoft Visual Studio, т.е. книга та об использовании студии вообще.
CheshireCat, спасиб, гляну. У меня на работе используется COM, например. Мне думается, что он несколько избыточен) Ок, я теперь покопаюсь немного сам в этих источниках, думаю, вопросы еще появятся. Спасиб
0
|
|
|
|
|
| 01.04.2013, 15:57 | |
|
1
|
|
| 01.04.2013, 15:57 | |
|
Помогаю со студенческими работами здесь
11
Использование сторонней dll Использование dll в приложении Использование dll созданных в .net в c++
Использование dll Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|