Ответ 1
Проблема заключается в "статическом" квалификаторе. Вам нужно удалить его, потому что это означает неправильную вещь в этом контексте. Попробуйте просто:
__declspec(dllexport) double Add(double a, double b);
Это то, что вам нужно иметь в своем заголовочном файле при компиляции DLL. Теперь для доступа к функции из программы, использующей DLL, вам нужно иметь файл заголовка с этим:
double Add(double a, double b);
Вы можете использовать заголовочный файл тот же для обеих целей, если вы используете #ifdefs:
#ifndef MYDLL_EXPORT
#define MYDLL_EXPORT
#endif
MYDLL_EXPORT double Add(double a, double b);