自定义模版类的有关问题,请

自定义模版类的问题,请高手指点
自定义了一个模版类,但链接时出错。

在gld.dll项目中,在GeneralList.h中定义CGeneralList如下:

#include "afxtempl.h"


template<class TYPE, class ARG_TYPE = const TYPE&>
class VCUL_API CGeneralList :
public CList<TYPE, ARG_TYPE>
{
public:

CGeneralList():CList<TYPE, ARG_TYPE>()
{
};

POSITION Add(ARG_TYPE newElement);

TYPE& Get(INT_PTR nIndex);

~CGeneralList(void)
{
};
};

template<class TYPE, class ARG_TYPE> 
VCUL_API POSITION CGeneralList<TYPE, ARG_TYPE>::Add(ARG_TYPE newElement)
{
return AddTail(newElement);
}



template<class TYPE, class ARG_TYPE>
VCUL_API TYPE& CGeneralList<TYPE, ARG_TYPE>::Get(INT_PTR nIndex)
{
ASSERT(nIndex < GetCount());

POSITION psPostion = FindIndex(nIndex);
return GetAt(psPostion);
}

VCUL_API 定义为:
#ifdef VCUL_EXPORTS
#define VCUL_API __declspec(dllexport)
#else
#define VCUL_API __declspec(dllimport)
#endif


gld.dll编译通过。

在调用的tgld.exe程序中,在TestGeneralList.cpp中调用自定义的模版类CGeneralList,
TestGeneralList.cpp代码如下:

#include "TestGeneralList.h"
void TestGeneralList()
{
CGeneralList<int *, int *> XGL;
int ia[2]={1,2};
XGL.Add(&ia[0]);
XGL.Add(&ia[1]);
printf("%d", *XGL.Get(0));
}

编译出错:
1>TestGeneralList.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual __thiscall CGeneralList<int *,int *>::~CGeneralList<int *,int *>(void)" (__imp_??1?$CGeneralList@PAHPAH@@UAE@XZ),该符号在函数 "void __cdecl TestGeneralList(void)" (?TestGeneralList@@YAXXZ) 中被引用
1>TestGeneralList.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: int * & __thiscall CGeneralList<int *,int *>::Get(int)" (__imp_?Get@?$CGeneralList@PAHPAH@@QAEAAPAHH@Z),该符号在函数 "void __cdecl TestGeneralList(void)" (?TestGeneralList@@YAXXZ) 中被引用
1>TestGeneralList.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: struct __POSITION * __thiscall CGeneralList<int *,int *>::Add(int *)" (__imp_?Add@?$CGeneralList@PAHPAH@@QAEPAU__POSITION@@PAH@Z),该符号在函数 "void __cdecl TestGeneralList(void)" (?TestGeneralList@@YAXXZ) 中被引用
1>TestGeneralList.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall CGeneralList<int *,int *>::CGeneralList<int *,int *>(void)" (__imp_??0?$CGeneralList@PAHPAH@@QAE@XZ),该符号在函数 "void __cdecl TestGeneralList(void)" (?TestGeneralList@@YAXXZ) 中被引用
1>D:\develop\project\stockghost\Debug\tgld.exe : fatal error LNK1120: 4 个无法解析的外部命令


开发工具是VC2008,请高手指点。

------解决方案--------------------
DLL的源文件呢?你先用软件查查你的DLL里面到底导出接口没有。
------解决方案--------------------
dll导出要具体类,你定义的模板都没实体化,所以实际上没产生导出的类。