Как использовать в одном фрагменте кода две разные библиотеки с одинаковыми объявлениямиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как использовать в одном фрагменте кода две разные библиотеки с одинаковыми объявлениями

Сообщение Anonymous »

У меня есть две библиотеки числовых математических вычислений, предоставляемые DLL (я работаю под Windows) и файлы заголовков. (Я не могу изменять заголовки, и в любом случае их десятки. У меня также нет доступа к коду, который я мог бы скомпилировать для получения DLL.)
Библиотеки одинаковы в следующем смысле: обе они не имеют какого-либо пространства имен (кроме глобального), и все объявления одинаковы: если функция находится в одной библиотеке, она также находится в другой с той же сигнатурой и типом возвращаемого значения, константностью или другими «квалификаторами» или что-либо включено - например, экспорт - макет памяти для возвращаемых объектов и т. д., то же самое для классов, структур, перечислений, переменных и т. д. и т. д. (Можно представить, например, даже если это не так, что обе библиотеки представляют собой просто разные версии одной и той же библиотеки только с внутренними различиями.)
До сих пор по причинам наследия я использовал эти библиотеки в разных решениях Visual Studio, но теперь мне нужно использовать обе библиотеки в одном файле. (Есть функция f с более высокой производительностью в одной библиотеке и другая функция g с более высокой производительностью в другой библиотеке, и мне нужно использовать f и g, скажем, в определении функции, которую я реализую.)
Конечно, если в коде я добавляю #include "headerfromlib1.h", за которым следует #include "headerfromlib2.h", у меня сразу же возникает конфликты.
Я не могу себе представить, что решения моей проблемы нет, но пока я его не вижу. (Я бы предпочел независимое от ОС решение, поскольку я совсем не разбираюсь в «уровне» C++ Windows, даже если понадобится, я бы не возражал против его использования.)

Подробнее здесь: https://stackoverflow.com/questions/798 ... t-same-dec
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»