|
0 / 0 / 1
Регистрация: 25.04.2013
Сообщений: 14
|
||||||||||||||||
.EXE и .DLL (ошибка LNK2019 с шаблонным классом)13.07.2014, 00:55. Показов 1290. Ответов 2
Метки нет (Все метки)
У меня есть два проекта - первый это dll-проект, и второй это exe-проект. Мне нужно использовать шаблонный класс из .dll, в моем главном .exe проекте.
Подскажите, пожалуйста, как исправить ошибку LNK2019? Место возникновения обозначено в коде. DLL-Проект: - MyClass.h -
EXE-Проект: - Main.cpp -
0
|
||||||||||||||||
| 13.07.2014, 00:55 | |
|
Ответы с готовыми решениями:
2
Работа с шаблонным классом valarray Не могу воспользоватсья шаблонным классом |
|
27 / 26 / 16
Регистрация: 02.12.2013
Сообщений: 79
|
|||||||
| 13.07.2014, 03:49 | |||||||
|
И dll-проект убей, он тоже не нужен. Если есть желание заняться сомнительными, но увлекательными извращениями, то можно попробовать в "MyClass.cpp" добавить
Смысл шаблона функции (класса) в том, что компилятор разворачивает его в обычный код и генерит функции (классы) по количеству разных типов, которые он встретил. И работает он в единице трансляции. Если в единице трансляции нет реализации (а *cpp файлы разные единицы трансляции), то компилятор сможет сгенерить только объявление функции (класса) по доступному хедеру. У компилятора в результате по типам все сойдется, а вот линковщик про шаблоны не знает ничего, ему подавай реализацию. Вот он и ругается, когда шаблонный класс реализован в своем уютном *cpp в другой еденице трансляции, где нет явного использования шаблона, а значит и нет функций и методов класса, которые так нужны линковщику для соседнего объектника. К чему я это все. dll - модуль "статичный", компилятору туда хода нет в принципе, туда линковщик ходит, а ему до фонаря всякие чисто сферические абстрации и шаблоны. Нет кода - на ошибку. А откуда там взяться коду когда при сборке dll компилятор ничего не генерил, потому что даже догадаться не мог какой тип в шаблон будут пихать. Если на пальцах, то как-то так.
1
|
|||||||
|
0 / 0 / 1
Регистрация: 25.04.2013
Сообщений: 14
|
||||||||||||||||
| 14.07.2014, 13:31 [ТС] | ||||||||||||||||
|
В общем, проблему решил следующим образом:
==== ==== ==== ==== ==== ==== ==== ==== DLL-Project: - MyClass.h -
EXE-Project: - Main.cpp -
0
|
||||||||||||||||
| 14.07.2014, 13:31 | |
|
Помогаю со студенческими работами здесь
3
Не могу разобраться с шаблонным классом Не работает typedef с шаблонным классом
Сделать пользовательский класс QueueWithPriority шаблонным классом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|