⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dwnsock1.inc

📁 Library of C functions that allows a program to use WinSock 2 functionality if it is available or fa
💻 INC
字号:
//
// DWNSOCK1.INC	Macros for dynamically linking to WinSock 1.1
//

#ifdef DWINSOCK_GLOBAL
	#undef DYNAMICWINSOCK
	#define DYNAMICWINSOCK(name, ptr) ptr p_##name
#endif

#ifdef DWINSOCK_EXTERN
	#undef DYNAMICWINSOCK
	#define DYNAMICWINSOCK(name, ptr) extern ptr p_##name
#endif

#ifdef DWINSOCK_GETPROCADDRESS
	#undef DYNAMICWINSOCK
	#define DYNAMICWINSOCK(name, ptr)							\
				p_##name = (ptr)GetProcAddress(hndlWinSock, #name);	\
				if (p_##name == NULL) fOK = FALSE
#endif

	//
	// Function available in both versions
	//
	DYNAMICWINSOCK(accept, LPFN_ACCEPT);
	DYNAMICWINSOCK(bind, LPFN_BIND);
	DYNAMICWINSOCK(closesocket, LPFN_CLOSESOCKET);
	DYNAMICWINSOCK(connect, LPFN_CONNECT);
	DYNAMICWINSOCK(gethostbyaddr, LPFN_GETHOSTBYADDR);
	DYNAMICWINSOCK(gethostbyname, LPFN_GETHOSTBYNAME);
	DYNAMICWINSOCK(gethostname, LPFN_GETHOSTNAME);
	DYNAMICWINSOCK(getpeername, LPFN_GETPEERNAME);
	DYNAMICWINSOCK(getprotobyname, LPFN_GETPROTOBYNAME);
	DYNAMICWINSOCK(getprotobynumber, LPFN_GETPROTOBYNUMBER);
	DYNAMICWINSOCK(getservbyname, LPFN_GETSERVBYNAME);
	DYNAMICWINSOCK(getservbyport, LPFN_GETSERVBYPORT);
	DYNAMICWINSOCK(getsockname, LPFN_GETSOCKNAME);
	DYNAMICWINSOCK(getsockopt, LPFN_GETSOCKOPT);
	DYNAMICWINSOCK(htonl, LPFN_HTONL);
	DYNAMICWINSOCK(htons, LPFN_HTONS);
	DYNAMICWINSOCK(inet_addr, LPFN_INET_ADDR);
	DYNAMICWINSOCK(inet_ntoa, LPFN_INET_NTOA);
	DYNAMICWINSOCK(ioctlsocket, LPFN_IOCTLSOCKET);
	DYNAMICWINSOCK(listen, LPFN_LISTEN);
	DYNAMICWINSOCK(ntohl, LPFN_NTOHL);
	DYNAMICWINSOCK(ntohs, LPFN_NTOHS);
	DYNAMICWINSOCK(recv, LPFN_RECV);
	DYNAMICWINSOCK(recvfrom, LPFN_RECVFROM);
	DYNAMICWINSOCK(select, LPFN_SELECT);
	DYNAMICWINSOCK(send, LPFN_SEND);
	DYNAMICWINSOCK(sendto, LPFN_SENDTO);
	DYNAMICWINSOCK(setsockopt, LPFN_SETSOCKOPT);
	DYNAMICWINSOCK(shutdown, LPFN_SHUTDOWN);
	DYNAMICWINSOCK(socket, LPFN_SOCKET);
	DYNAMICWINSOCK(WSAAsyncGetHostByAddr, LPFN_WSAASYNCGETHOSTBYADDR);
	DYNAMICWINSOCK(WSAAsyncGetHostByName, LPFN_WSAASYNCGETHOSTBYNAME);
	DYNAMICWINSOCK(WSAAsyncGetProtoByName, LPFN_WSAASYNCGETPROTOBYNAME);
	DYNAMICWINSOCK(WSAAsyncGetProtoByNumber, LPFN_WSAASYNCGETPROTOBYNUMBER);
	DYNAMICWINSOCK(WSAAsyncGetServByName, LPFN_WSAASYNCGETSERVBYNAME);
	DYNAMICWINSOCK(WSAAsyncGetServByPort, LPFN_WSAASYNCGETSERVBYPORT);
	DYNAMICWINSOCK(WSAAsyncSelect, LPFN_WSAASYNCSELECT);
	DYNAMICWINSOCK(WSACancelAsyncRequest, LPFN_WSACANCELASYNCREQUEST);
	DYNAMICWINSOCK(WSACleanup, LPFN_WSACLEANUP);
	DYNAMICWINSOCK(WSAGetLastError, LPFN_WSAGETLASTERROR);
	DYNAMICWINSOCK(WSASetLastError, LPFN_WSASETLASTERROR);
	DYNAMICWINSOCK(WSAStartup, LPFN_WSASTARTUP);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -