Задать вопрос
@User700

Возможно ли локально в пределах заголовочного файла импортировать функции из dll?

В заголовочный файле объявлены функции, импортируемые из dll. Допустим lib_ff для float, lib_fd для double и т.д.. Делаю шаблонную обёртку, чтобы было lib::f < float > и lib::f < double > соотв. Можно ли каким-то образом ограничить видимость первых C-функций. Объявление конечно в h-файле, который не является единицей трансляции. Возможен ли какой-то undef тех объявлений? С другой стороны, они используются из lib::f<..>.
  • Вопрос задан
  • 42 просмотра
Подписаться 2 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@romancelover
программист C++ под Linux
Можно оставить в заголовочном файле только обёртки, а импортируемые функции объявить только в cpp файле с реализацией этих обёрток.

*.h:
template<> int f(float x) ;
template<> int f(double x);
*.cpp:
extern "C" int lib_ff(float x);
extern "C" int lib_fd(double x);
template<> int f(float x) { return lib_ff(x); }
template<> int f(double x) { return lib_fd(x); }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы