我正在将一个旧的vC++ 6.0应用程序移植到vs2005中,我收到以下链接器错误,并花了数天的时间尝试查找解决方案。来自第三方库的链接器错误LNK2019
错误LNK2019:解析外部符号_ 小鬼 _CreateAwnService @ 52 在函数引用 “市民:INT __thiscall 的CMainFrame:CreateAsaNetworkServices(无效)”
有一个第三方的C库用下面的API定义
extern "C"
{
DLLAPI IAwnServ * AWNAPI CreateAwnService(HINSTANCE hInst,
const char *pszDId, const char *pszDLoc,
AWN_DIQUAL DiQual, AWN_DOQUAL DoQual, int Prio,
const char *pszLicStr, const char *pszInfo,
AWN_REPEAT Repeat=R_LAST, TIME_T Since=0,
BOOL bLogin=FALSE, BOOL bDeb=FALSE);
DLLAPI IAwnSend * AWNAPI CreateAwnSend(const IAwnSend *pSend = NULL);
DLLAPI IAwnData * AWNAPI CreateAwnData(const char *pData = NULL, int iLen = 0);
DLLAPI IAwnHeader * AWNAPI CreateAwnHeader(const IAwnHeader *pHeader = NULL);
DLLAPI IAwnReference * AWNAPI CreateAwnReference(const IAwnReference *pRef = NULL);
DLLAPI IAwnFile * AWNAPI CreateAwnFile(const char *pFile = NULL);
DLLAPI IAwnOrder * AWNAPI CreateAwnOrder(const IAwnOrder *pOrder);
DLLAPI IAwnVehicle * AWNAPI CreateAwnVehicle(const IAwnVehicle *pVehicle);
DLLAPI int AWNAPI AwnCmp(const IAwnSend *pSend1, const IAwnSend *pSend2);
DLLAPI TIME_T AWNAPI AwnGetNetTime(const char *NetTime);
DLLAPI int AWNAPI AwnSetNetTime(char *NetTime, TIME_T Time);
DLLAPI TIME_T AWNAPI AwnMakeQueryTime(int MonthsBack);
DLLAPI struct tm *AWNAPI AwnSplitTime(TIME_T Time);
DLLAPI TIME_T AWNAPI AwnMakeTime(tm *ptm);
}
#endif
给API的调用如下:
m_pIAwnService = CreateAwnService(AfxGetApp()->m_hInstance, .........)
我已检查所有链接包括等,我似乎无法找到该错误。
任何帮助,非常感谢。
那么,错误是在链接器选项。 *它总是*。您可能已经检查过,但也许您没有检查所有内容,或没有正确检查。 –
你确定第三方库链接成功吗? –
@ R.马丁霍费尔南德斯可以建议一些链接器设置来检查。 – user655261