У меня возникают проблемы при написании приложения в C++. У меня есть два проекта. Проект A - это обычный проект C++, проект B - проект C++ с поддержкой clr. Проект А содержит классы, в которых используются заголовки из структуры LLVM. Проект B содержит управляемые обертки для некоторых классов проекта A. Могу ли я использовать классы из проекта A в проекте B без включения их заголовков?C++ заголовки между проектами
Причина в этом. Когда я включаю заголовки классов из проекта A в проект B, мне нужно указать также библиотеки фреймворков, которые использует этот заголовок из проекта A, но структура LLVM не может взаимодействовать с поддержкой clr. Я не могу переместить фреймворк из заголовка в файл cpp. Как я могу это решить?
Вы должны использовать заголовки - иначе как ваш исходный файл знает, как использовать каждый класс? Я думаю, что единственный способ решить эту проблему - использовать препроцессор. –
Пока вы не должны использовать LLVM и clr вместе, вы можете использовать форвардные объявления. Заголовки просто объявляют переменные и функции, которые присутствуют в другом исходном файле, и помещают их в класс, в который заголовок включен, поэтому код знает о существовании этих функций и переменных. Если, конечно, заголовки не массивны, и вы не хотите пересылать объявление всем или создавать другой заголовок, который не включает несовместимые заголовки. – tom