VC6调用VC2005编译生成的lib/dll库出现“unresolved external symbol "__declspec(dllimport) int __cdecl”错误的原因

VC2005是生成lib/dll文件的工程,VC6是调用VC2005生成的lib/dll;

 

//工程说明

VC2005接口如:

#ifdef _GBKToGBK_DLL_IMEX_

#define GBKToGBK_DLLEXPORT _declspec(dllexport)

#else 

#define GBKToGBK_DLLEXPORT _declspec(dllimport)

#endif

GBKToGBK_DLLEXPORT BOOL GBKToGBK_T2S(const CString& strSrc, CString& strDest);
在VC6中调用函数lib库中的函数GBKToGBK_T2S时会出现“unresolved external symbol "__declspec(dllimport) int __cdecl”的错误
//原因分析:
VC2005的CString是个模板定义,与VC6中的CString类不相同,所以由VC6的CString调用VC2005中的函数中有参数CString时会出现unresolved external symbol 
//解决方法:
原因既然已经找到了,问题当然就容易解决了,可以使用其他公用类型:如std::string、TCHAR数组等,注意安全控制即可
//注:
当然,CString这样的类型不统一只是出现“unresolved external symbol "__declspec(dllimport) int __cdecl”错误的一种原因,可能还有其他如编码等问题这里就不做特殊处理了

你可能感兴趣的:(String,dll)