создать библиотеку c ++ CLR (в VS) с зависимостями Qt - PullRequest
0 голосов
/ 07 марта 2019

Я хочу перенести существующий набор классов 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 варианта:

  1. Создайте библиотеку CLR через Qt (пока не видели эти варианты разработки проекта через Qt).
  2. Или вытащить существующие классы c ++ в проект CLR в VS и приспособиться к зависимостям Qt в этих классах.

Может кто-нибудь порекомендовать, что и как это сделать? Любые ссылки на учебники или рабочие примеры (правильное видео на YouTube будет ЗОЛОТО ), или все, что доступно, будет принята с благодарностью ...

Изменить:

В своей попытке найти решение я нашел этот пост для включения заголовочных файлов и библиотек Qt в проект VS, но застрял с той же проблемой (для которой решение не опубликовано):

  1. Включить заголовочные файлы в проект (свойства -> 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

  1. Включить статические библиотеки (.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"
и т.д ...

...