Эй, все это, похоже, для меня это довольно странная проблема. У меня очень простой templatized контейнерный класс, который является частью DLL. Весь класс определяется в файле заголовка, чтобы разрешить автоматическое создание шаблонов. Теперь другая часть DLL фактически запрашивает определенный тип шаблона, который должен быть сгенерирован, поэтому код должен существовать в DLL. Однако при использовании объекта из другого исполняемого файла конструктор/деструктор, а также несколько других функций работают, однако 2 функции не найдены компоновщиком. Ниже приведен код этих двух функций, а также для рабочей функции.DLL экспортирует только определенные шаблонизированные функции
const T** getData() const
{
return m_data;
}
int getNumRows() const
{
return m_nRows;
}
int getNumCols() const
{
return m_nCols;
}
Так что getNumRows() и getNumCols() функции не найдены компоновщиком, функции, однако GetData() есть. Является ли это общей проблемой, нужны ли функции для параметра templatized для генерации?
@ 1 800 ИНФОРМАЦИЯ
Я экспортировал это из DLL с помощью стандартных макросов:
#ifdef ACORE_EXPORTS
#define ACORE_API __declspec(dllexport)
#else
#define ACORE_API __declspec(dllimport)
#endif
И в определении класса:
template < class T >
class ACORE_API matrix
Да, я полагаю, на это будет дан ответ, что некоторые функции работают. Но да, я использую макрос dllexport/dllimport для этого класса. – 2009-06-04 04:04:23