Реализация двух API с перекрывающимися пространствами имен - PullRequest
0 голосов
/ 29 марта 2019

Привет сообщество Stackoverflow,

Я пытаюсь реализовать 2 проекта вместе в более крупном проекте. Из-за перекрывающихся пространств имен в настоящий момент я не могу скомпилировать и запустить свой код. Два API, которые я использую: Aspose.Cells и Aspose.PDF, имеют довольно большой список файлов, которые я должен включить в свой проект. Теперь мы переходим к моей проблеме, когда я пытаюсь скомпилировать свой код, я получаю в основном 2 вида ошибок. Первый, например,

Система неоднозначна

это связано с тем, что обе библиотеки имеют

Системная папка

, который содержит несколько заголовочных файлов, которые мне нужны для запуска кода. Эти файлы НЕ совпадают. Вторая ошибка будет выглядеть примерно так:

строка не является частью системы

эта ошибка также вызвана тем, что каждый API получил системную папку, и мой VisualStudio, похоже, не знает, из какой папки он должен загружаться. Так, например, если Aspose.PDF пытается вызвать Aspose:PDF:System:string, он на самом деле пытается загрузить Aspose:Cells:System:string, поскольку это API, который я сначала реализовал, но Aspose: Cells: System не содержит "string". Я бы просто #include всех файлов, которые мне нужны, с реальным путем, но файлы, которые мне нужны, также #include заголовочных файлов, которые выдают ту же ошибку, поэтому мне пришлось бы изменить 100 или более заголовочных файлов, которые мне кажутся ненужными, а также просто кажется, что неправильный подход.

Что я пытался до этого момента: Я внедрил один из API в свой существующий проект, и он работает без нареканий. Всякий раз, когда я реализую второй, я снова получаю ошибки, описанные выше.

Оба API содержат примеры проектов, которые также работают без проблем. Сначала я просто попытался расширить один из этих примеров проектов для запуска с другим. Поэтому я взял Aspose.Cells и добавил все необходимые библиотеки, зависимости и каталоги из Aspose.PDF в свои дополнительные зависимости, Дополнительные библиотеки и дополнительные каталоги include в свойствах проектов. Что, конечно, привело к тем же ошибкам.

Также я попытался добавить пример проекта Aspose.PDF в решение Aspose.Cells , но так как мне пришлось расширять мои дополнительные каталоги включения с помощью каталогов Apose .PDF Я снова столкнулся с той же ошибкой, что вполне логично.

Так что, думаю, теперь у вас должен быть приличный обзор моей проблемы. Какое будет возможное решение? Возможно ли будет заказать заголовок и все заголовки, которые этот заголовок будет включать, просто для использования определенного пространства имен или чего-то в этом роде?

Вот некоторые из ошибок, которые я получаю.

Швейцарский кодекс Beschreibung Projekt Datei Zeile Unterdrückungszustand Fehler (aktiv) E0266 "" Шрифт "" ist mehrdeutig. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ Aspose.Pdf.Cpp \ Text \ TextFragment.h 583 Fehler (aktiv) E0266 "" Шрифт "" ist mehrdeutig. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ Aspose.Pdf.Cpp \ Text \ TextFragmentAbsorber.h 492 Fehler (aktiv) E0266 "" Шрифт "" ist mehrdeutig. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ Aspose.Pdf.Cpp \ Text \ TextFragmentAbsorber.h 503 Fehler (aktiv) E0266 "hash" "ist mehrdeutig. Демонстрация C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.15.26726 \ include \ unordered_map 91
Fehler (aktiv) E0266 "hash" "ist mehrdeutig. Демонстрация C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.15.26726 \ include \ unordered_map 638 Fehler (aktiv) E0266 "" литералы "" ist mehrdeutig. Демо C: \ Программа Файлы (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.15.26726 \ include \ chrono 906 Fehler (aktiv) E0757 "" ptr "" ist kein Typname. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ drawing \ drawing2d \ matrix.h 152Fehler (aktiv) E0757 "" ptr "" ist kein Typname. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ globalization \ culture_info.h 55
Fehler (aktiv) E0757 "" ptr "" ist kein Typname. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ text \ icu_encoding.h 44
Fehler (aktiv) E0519 "класс" Aspose :: Cells :: System :: Array "" Дарф Кейн Vorlagenargumentliste aufweisen. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ io \ text_writer.h 84
Fehler (aktiv) E0519 "класс" Aspose :: Cells :: System :: Array "" Дарф Кейн Vorlagenargumentliste aufweisen. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ io \ text_writer.h 89
Fehler (aktiv) E0519 "класс" Aspose :: Cells :: System :: Array "" Дарф Кейн Vorlagenargumentliste aufweisen. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ io \ text_writer.h 128 Fehler (aktiv) E0519 "класс" Aspose :: Cells :: System :: Array "" Дарф Кейн Vorlagenargumentliste aufweisen. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ io \ text_writer.h 133 Фехлер (актив) E0519 "класс "Aspose :: Cells :: System :: Коллекции :: ICollection" "Дарф Кейн Vorlagenargumentliste aufweisen. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ collection \ base_dictionary.h 41
Фехлер (актив) E0519 "класс "Aspose :: Cells :: System :: Коллекции :: IEnumerator" "Дарф Кейн Vorlagenargumentliste aufweisen. Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ collection \ keyvalue_collection.h 40
Fehler (актив) E0135 "класс" Aspose :: Cells :: System :: Object "" шляпа keinen Member "" Shared_members_type "". Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ collection \ base_dictionary.h 306 Fehler (актив) E0135 "класс" Aspose :: Cells :: System :: Object "" шляпа keinen Member "" Shared_members_type "". Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ io \ memory_stream.h 156 Fehler (aktiv) E0135 "класс" std :: enable_if <, void> "" hat keinen Member "" тип "". Демонстрация C: \ Program Files (x86) \ Microsoft визуальный Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.15.26726 \ include \ xtr1common 59
Fehler (aktiv) E0135 "класс" std :: enable_if <, void> "" hat keinen Пользователь ""значение"". Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ collection \ iequality_comparer.h 85
Fehler (aktiv) E0135 "класс" std :: enable_if <, void> "" hat keinen Пользователь ""значение"". Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ collection \ iequality_comparer.h 107 Fehler (aktiv) E0135 "class" System :: ObjectExt "" hat keinen Member «» Равно «». Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ object_ext.h 619 Fehler (aktiv) E0135 "class" _Ratio_multiply_sfinae, nano, false, void> "" hat keinen Member ""тип"". Демонстрация C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.15.26726 \ include \ ratio 223 Fehler (aktiv) E0757 "Функция" Сборка "" ist kein Typname. Demo
E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ asposecpplib \ system \ reflections \ assembly.h 84 Швейцарский кодекс Beschreibung Projekt Datei Zeile Unterdrückungszustand Fehler (aktiv) E0135 "пространство имен" Aspose :: Pdf "" hat keinen Member "" PdfFormat "". Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ Aspose.Pdf.Cpp \ Document.h 1886
Fehler (aktiv) E0135 "пространство имен" Aspose :: Pdf "" hat keinen Member "" SaveFormat "". Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ Aspose.Pdf.Cpp \ SaveOptions.h 232 Fehler (aktiv) E0135 "пространство имен" Aspose :: Pdf "" hat keinen Member "" SaveOptions "". Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ Aspose.Pdf.Cpp \ UnifiedSaveOptions.h 53
Fehler (aktiv) E0135 "пространство имен" Aspose :: Pdf "" hat keinen Member "" TabOrder "".Демонстрация E: \ Aspose.Total_for_C ++ \ Aspose.PDF \ include \ Aspose.Pdf.Cpp \ Page_.h 439

...