Я хочу перенести существующий набор классов c ++ в библиотеку CLR (проект библиотеки классов CLR в VS2017). Однако эти классы c ++ изначально были написаны на Qt и поэтому имеют зависимости Qt.
До сих пор я только создавал dll через Qt через extern "C" __declspec (dllexport) для импорта в C # через PInvoke, или делал то же самое с помощью Qt VS tools для VS2017. Но я понятия не имею, как, или если возможно создать библиотеки CLR с зависимостями Qt ... Единственный способ, которым я мог бы найти, это что-то, связанное с ActiveQt (но не знаю, как это работает).
Я бы предпочел пойти по пути CLR в VS из-за того, как улучшились возможности отладки и импорта через C # в VS (потому что я также действительно борюсь с отладкой библиотеки c ++). Таким образом, я вижу только 2 варианта:
- Создайте библиотеку CLR через Qt (пока не видели эти варианты разработки проекта через Qt).
- Или вытащить существующие классы c ++ в проект CLR в VS и приспособиться к зависимостям Qt в этих классах.
Может кто-нибудь порекомендовать, что и как это сделать? Любые ссылки на учебники или рабочие примеры (правильное видео на YouTube будет ЗОЛОТО ), или все, что доступно, будет принята с благодарностью ...
Изменить:
В своей попытке найти решение я нашел этот пост для включения заголовочных файлов и библиотек Qt в проект VS, но застрял с той же проблемой (для которой решение не опубликовано):
- Включить заголовочные файлы в проект (свойства -> C ++ -> general -> Additional Включить каталоги). Например, для Qt5Core:
C: \ Qt \ Qt5.11.1 \ 5.11.1 \ msvc2017_64 \ включать \ QtCore \ 5.11.1 \ QtCore \ частная
C: \ Qt \ Qt5.11.1 \ 5.11.1 \ msvc2017_64 \ include \ QtCore
- Включить статические библиотеки (.lib) в проект (свойства -> Линкер -> Ввод -> Дополнительные зависимости)
C: \ Qt \ Qt5.11.1 \ 5.11.1 \ msvc2017_64 \ Lib \ Qt5Core.lib
Но при получении ошибок для "неопознанных объектов Qt", таких как:
не может открыть исходный файл "QtCore / qtextstream.h"
не удается открыть исходный файл "QtCore / qalgorithms.h"
не удается открыть исходный файл "QtCore / qhash.h"
не может открыть исходный файл "QtCore / qlist.h"
и т.д ...