大家好,又见面了,我是你们的朋友全栈君。
当在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”),一切搞定。特共享给有同样烦恼的朋友。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153490.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...