C++ TCp通信遇到的无法解析外部符号

当在VS2005编写WINCE程序时,如果包含WinSock2.h后使用socket的相关函数,则编译会出现如下错误:

1>TcpServer.obj : error LNK2019: 无法解析的外部符号 WSACleanup,该符号在函数 "private: int __cdecl CTcpServer_CE::InitializeSocket(void)" (?InitializeSocket@CTcpServer_CE@@AAAHXZ) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 WSAStartup,该符号在函数 "private: int __cdecl CTcpServer_CE::InitializeSocket(void)" (?InitializeSocket@CTcpServer_CE@@AAAHXZ) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 ioctlsocket,该符号在函数 "private: static unsigned long __cdecl CTcpServer_CE::TcpListenTheadFunc(void *)" (?TcpListenTheadFunc@CTcpServer_CE@@CAKPAX@Z) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 accept,该符号在函数 "private: static unsigned long __cdecl CTcpServer_CE::TcpListenTheadFunc(void *)" (?TcpListenTheadFunc@CTcpServer_CE@@CAKPAX@Z) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 __WSAFDIsSet,该符号在函数 "private: static unsigned long __cdecl CTcpServer_CE::TcpListenTheadFunc(void *)" (?TcpListenTheadFunc@CTcpServer_CE@@CAKPAX@Z) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 closesocket,该符号在函数 "private: static unsigned long __cdecl CTcpServer_CE::TcpListenTheadFunc(void *)" (?TcpListenTheadFunc@CTcpServer_CE@@CAKPAX@Z) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 select,该符号在函数 "private: static unsigned long __cdecl CTcpServer_CE::TcpListenTheadFunc(void *)" (?TcpListenTheadFunc@CTcpServer_CE@@CAKPAX@Z) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 WSAGetLastError,该符号在函数 "private: static unsigned long __cdecl CTcpServer_CE::TcpThreadFunc(void *)" (?TcpThreadFunc@CTcpServer_CE@@CAKPAX@Z) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 recv,该符号在函数 "private: static unsigned long __cdecl CTcpServer_CE::TcpThreadFunc(void *)" (?TcpThreadFunc@CTcpServer_CE@@CAKPAX@Z) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 listen,该符号在函数 "public: int __cdecl CTcpServer_CE::Open(void)" (?Open@CTcpServer_CE@@QAAHXZ) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 bind,该符号在函数 "public: int __cdecl CTcpServer_CE::Open(void)" (?Open@CTcpServer_CE@@QAAHXZ) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 htonl,该符号在函数 "public: int __cdecl CTcpServer_CE::Open(void)" (?Open@CTcpServer_CE@@QAAHXZ) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 htons,该符号在函数 "public: int __cdecl CTcpServer_CE::Open(void)" (?Open@CTcpServer_CE@@QAAHXZ) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 socket,该符号在函数 "public: int __cdecl CTcpServer_CE::Open(void)" (?Open@CTcpServer_CE@@QAAHXZ) 中被引用
1>TcpServer.obj : error LNK2019: 无法解析的外部符号 send,该符号在函数 "public: int __cdecl CTcpServer_CE::SendData(char const *,unsigned long)" (?SendData@CTcpServer_CE@@QAAHPBDK@Z) 中被引用

网上找了很久都没有解决方法,错误产生的原因是由于在WIN32智能设备控制台时使用了MFC的API,有很多网友说包含:#pragma comment(lib, "ws2_32.lib")就可以解决,实际上对于WINCE控制台程序还是无法使用,可以考虑使用#pragma comment(lib, "winsock.lib")即使用version 1.0的库,但是还会有一些无法找到,个人摸索了好久,终于找到解决方法,#pragma comment(lib, "ws2.lib"),一切搞定。特共享给有同样烦恼的朋友。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值