Мне нужно собрать свой проект DLL. Пример кода в порядке, и код:
#ifdef MyDLL_EXPORTS
#define MyDLL_EXPORT __declspec(dllexport)
#else
#define MyDLL_EXPORT __declspec(dllimport)
#endif
class MyDLL_EXPORT arithmetic_operation
{
public:
double add(double a, double b);
};
double arithmetic_operation::add(double a, double b)
{
return a + b;
}
Затем я хочу изменить этот код на код шаблона, и измененный код:
#ifdef MyDLL_EXPORTS
#define MyDLL_EXPORT __declspec(dllexport)
#else
#define MyDLL_EXPORT __declspec(dllimport)
#endif
template <typename data>
class MyDLL_EXPORT arithmetic_operation
{
public:
double add(data a, data b);
};
template <typename data>
double arithmetic_operation<data>::add(data a, data b)
{
return a+b;
}
Однако, сообщается об ошибке при компиляции:
C2491: 'arithmetic_operation<data>::add': definition of dllimport function not allowed.
Что означает эта ошибка? Как я могу исправить эту ошибку?