关于error LNK2001: unresolved external symbol "__declspec(dllimport) public

         早上用vs2005创建了vc++的MFC Application,要使用别人编译的dll进行压力测试代码的编写。工程属性设置好了,结果调用dll中的一个接口时,出现了下面的错误:
        error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall sClient::ConnectToServer(wchar_t *,int,int)" ([email=__imp_?ConnectToServer@sClient@@QAEHPA_WHH@Z]__imp_?ConnectToServer@sClient@@QAEHPA_WHH@Z[/email]) GPSSubsequentDlg.obj
       从google上搜了数种解决方案,结果都没能帮助我,后求助同事,发现源码中接口是这样定义的:int ConnectToServer(TCHAR *pszHost, int nPort, int nProtocol)。对比了编译器中的错误提示发现接口的第一个参数,一个是wchar_t *类型,一个是TCHAR*类型。由此估计可能是Unicode搞的鬼。于是修改工程属性,从工程Property Page-General-Charater set修改为Not set,再编译,就OK了。
      因为很久没摸过C++了,所以好些东西都不知道,现在对Unicode和非Unicode也是一知半解。

在引用读卡器头文件时,会报错TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* TyA_CS_Write)(void *,unsigned char,unsigned char *)" (?TyA_CS_Write@@3P6GHPAXEPAE@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* TyA_CS_Read)(void *,unsigned char,unsigned char *,unsigned char *)" (?TyA_CS_Read@@3P6GHPAXEPAE1@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* TyA_CS_Authentication2)(void *,unsigned char,unsigned char,unsigned char *)" (?TyA_CS_Authentication2@@3P6GHPAXEEPAE@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* TyA_Halt)(void *)" (?TyA_Halt@@3P6GHPAX@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* TyA_Select)(void *,unsigned char *,unsigned char,unsigned char *)" (?TyA_Select@@3P6GHPAXPAEE1@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* TyA_Anticollision)(void *,unsigned char,unsigned char *,unsigned char *)" (?TyA_Anticollision@@3P6GHPAXEPAE1@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* TyA_Request)(void *,unsigned char,unsigned short *)" (?TyA_Request@@3P6GHPAXEPAG@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* Sys_InitType)(void *,unsigned char)" (?Sys_InitType@@3P6GHPAXE@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* Sys_SetAntenna)(void *,unsigned char)" (?Sys_SetAntenna@@3P6GHPAXE@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* Sys_SetBuzzer)(void *,unsigned char)" (?Sys_SetBuzzer@@3P6GHPAXE@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* Sys_SetLight)(void *,unsigned char)" (?Sys_SetLight@@3P6GHPAXE@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* Sys_Close)(void * *)" (?Sys_Close@@3P6GHPAPAX@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* Sys_IsOpen)(void *)" (?Sys_IsOpen@@3P6GHPAX@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* Sys_Open)(void * *,unsigned long,unsigned short,unsigned short)" (?Sys_Open@@3P6GHPAPAXKGG@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* Sys_GetHidSerialNumberStr)(unsigned long,unsigned short,unsigned short,char *,unsigned long)" (?Sys_GetHidSerialNumberStr@@3P6GHKGGPADK@ZA) TransJoborderDlg.obj : error LNK2001: unresolved external symbol "int (__stdcall* Sys_GetDeviceNum)(unsigned short,unsigned short,unsigned long *)" (?Sys_GetDeviceNum@@3P6GHGGPAK@ZA)这个如何解决
最新发布
07-03
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值