我是一个在校大学生,专业是计算机科学与技术,我的方向是软件开发,下面是我的一个作业,但是有些错误,老是显示LINK : 没有找到 C:\Documents and Settings\Administrator\桌面\端口扫描\Debug\端口扫描.exe 或上一个增量链接没有生成它;正在执行完全链接,请大家帮忙看看哈!/*---------------------------------------------------------------------------------- 端口扫描程序----------------------------------------------------------------------------------*/
#pragma  comment(lib, "WS2_32.lib")
#pragma  comment(lib, "ComCtl32.lib")
#include <windows.h>
#include <CommCtrl.h>
#include    "_ListView.h"
#include    "resource.h"
//-------------全局变量-----------
HINSTANCE ghInstance;
HWND  ghWinMain;
HWND  ghListView;
int   ghCurrentRow = 0;
DWORD  dwOption;
DWORD  F_STOP=1;
//--------程序中用到的函数--------
BOOL CALLBACK _ProcDlgMain(HWND, UINT, WPARAM, LPARAM);
DWORD WINAPI _WorkThread(LPVOID _lpParam);
//--------------主函数------------
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
 ghInstance = hInstance;
 InitCommonControls();
 DialogBoxParam(hInstance, MAKEINTRESOURCE(DLG_MAIN), NULL, _ProcDlgMain,0);
 
 return 0;
}
/*-----------------------------------------------------------------------------  主对话框函数
 BOOL CALLBACK _ProcDlgMain(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)-------------------------------------------------------------------------------*/
BOOL CALLBACK _ProcDlgMain(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
 HICON  hIcon;
 WSADATA  stWSAData;
 HANDLE  hThread;
 DWORD  dwThreadId; switch(uMessage)
 {
  case WM_INITDIALOG:
   dwOption |= F_STOP;   //dwOption=1
   ghWinMain = hWnd;
   hIcon = LoadIcon(ghInstance, MAKEINTRESOURCE(ICO_MAIN));
   SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
   WSAStartup(MAKEWORD(2,0), &stWSAData);   ghListView = GetDlgItem(hWnd, IDC_LIST);
   SendMessage(ghListView, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
   ShowWindow(ghListView, SW_SHOW);
   EnableWindow(GetDlgItem(ghWinMain,IDOK), TRUE);
   EnableWindow(GetDlgItem(ghWinMain,IDCANCEL), FALSE);
   SendDlgItemMessage(ghWinMain,IDC_IPADDR1,WM_SETFOCUS,0, 0);   break;  case WM_COMMAND:
   switch(LOWORD(wParam))
   {
    case IDOK:
     dwOption &= ~F_STOP;  //dwOption=0
     EnableWindow(GetDlgItem(ghWinMain,IDC_IPADDR1), FALSE);
     EnableWindow(GetDlgItem(ghWinMain,IDC_IPADDR2), FALSE);
     EnableWindow(GetDlgItem(ghWinMain,IDC_PORT1), FALSE);
     EnableWindow(GetDlgItem(ghWinMain,IDC_PORT2), FALSE);
     EnableWindow(GetDlgItem(ghWinMain,IDOK), FALSE);
     EnableWindow(GetDlgItem(ghWinMain,IDCANCEL), TRUE);
     _ListViewClear(ghListView);
     _ListViewAddColumn(ghListView, 0, 500, "扫描结果");     hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)_WorkThread, 0, NULL, &dwThreadId);
     CloseHandle(hThread);     break;    case IDCANCEL:
     dwOption |= F_STOP;   //dwOption=0
     EnableWindow(GetDlgItem(ghWinMain,IDC_IPADDR1), TRUE);
     EnableWindow(GetDlgItem(ghWinMain,IDC_IPADDR2), TRUE);
     EnableWindow(GetDlgItem(ghWinMain,IDC_PORT1), TRUE);
     EnableWindow(GetDlgItem(ghWinMain,IDC_PORT2), TRUE);
     EnableWindow(GetDlgItem(ghWinMain,IDOK), TRUE);
     EnableWindow(GetDlgItem(ghWinMain,IDCANCEL), FALSE);
     SendDlgItemMessage(ghWinMain,IDC_IPADDR1,WM_SETFOCUS,0,0);     break;   }  case WM_CLOSE:   if(dwOption & F_STOP)   //dwOption=1 (dwOption & F_STOP)=0 
   {
    WSACleanup();
    EndDialog(ghWinMain,NULL);
   }   break;  default:   return (FALSE);   // We didn't process the message.
 }
 
 return (TRUE);
}
/*--------------------------------------------------------------------- 扫描函数
 DWORD WINAPI _WorkThread(LPVOID _lpParam);---------------------------------------------------------------------*/DWORD WINAPI _WorkThread(LPVOID _lpParam){ 
 DWORD  dwStartIp;
 DWORD  dwEndIp;
 DWORD  dwStratPort;
 DWORD  dwEndPort; SendMessage(GetDlgItem(ghWinMain, IDC_IPADDR1), IPM_GETADDRESS,0, (LPARAM) &dwStartIp);
 SendMessage(GetDlgItem(ghWinMain, IDC_IPADDR2), IPM_GETADDRESS,0, (LPARAM) &dwEndIp);
 dwStratPort = GetDlgItemInt(ghWinMain, IDC_PORT1, NULL, FALSE);
 dwEndPort = GetDlgItemInt(ghWinMain, IDC_PORT2, NULL, FALSE);
 
 for(DWORD dwIp=dwStartIp; dwIp<=dwEndIp;dwIp++)
 {
  for(DWORD dwPort=dwStratPort; dwPort<=dwEndPort && !(dwOption | F_STOP);dwPort++)
  {
   
   SOCKADDR_IN stSin;
   SOCKET  hSocket;
   SYSTEMTIME stTime = {0};
   char  szBuffer[512] = {0};   hSocket = socket(AF_INET, SOCK_STREAM, 0);
   stSin.sin_family = AF_INET;
   stSin.sin_port = htons((short)dwPort);
   stSin.sin_addr.S_un.S_addr = htonl(dwIp);   char* szIp = inet_ntoa(stSin.sin_addr);   if(connect(hSocket, (LPSOCKADDR)&stSin, sizeof(stSin)) == 0)
   {
    //连接成功
    GetLocalTime(&stTime);
    wsprintf(szBuffer, "%s 端口 %d 连接成功 -时间 %d:%d:%d", szIp, dwPort,
     stTime.wHour, stTime.wMinute, stTime.wSecond);
   }
   else
   {
    //连接失败
    GetLocalTime(&stTime);
    wsprintf(szBuffer, "%s 端口 %d 连接失败 -时间 %d:%d:%d", szIp, dwPort,
     stTime.wHour, stTime.wMinute, stTime.wSecond);
   }
   ghCurrentRow = (int)_ListViewSetItem(ghListView, ghCurrentRow, -1, 0); //插入新的一行,是空白的。
   _ListViewSetItem(ghListView, ghCurrentRow, 0, szBuffer);
   ghCurrentRow++;   closesocket(hSocket);
  }
  
 }
 
 dwOption |= F_STOP;   //dwOption=1
 EnableWindow(GetDlgItem(ghWinMain,IDC_IPADDR1), TRUE);
 EnableWindow(GetDlgItem(ghWinMain,IDC_IPADDR2), TRUE);
 EnableWindow(GetDlgItem(ghWinMain,IDC_PORT1), TRUE);
 EnableWindow(GetDlgItem(ghWinMain,IDC_PORT2), TRUE);
 EnableWindow(GetDlgItem(ghWinMain,IDOK), TRUE);
 EnableWindow(GetDlgItem(ghWinMain,IDCANCEL), FALSE);
 SendDlgItemMessage(ghWinMain,IDC_IPADDR1,WM_SETFOCUS,0, 0); return 0;
}调试结果:------ 已启动生成: 项目: 端口扫描, 配置: Debug Win32 ------
正在链接...
LINK : 没有找到 C:\Documents and Settings\Administrator\桌面\端口扫描\Debug\端口扫描.exe 或上一个增量链接没有生成它;正在执行完全链接
正在嵌入清单...
生成日志保存在“file://c:\Documents and Settings\Administrator\桌面\端口扫描\端口扫描\Debug\BuildLog.htm”
端口扫描 - 0 个错误,0 个警告
========== 生成: 1 已成功, 0 已失败, 0 最新, 0 已跳过 ==========