dfgh error LNK2019: 无法解析的外部符号 __imp__accept@12 ,该符号在函数 _main 中被引用
dfgh error LNK2019: 无法解析的外部符号 __imp__WSACleanup@0 ,该符号在函数 _main 中被引用
dfgh error LNK2019: 无法解析的外部符号 __imp__closesocket@4 ,该符号在函数 _main 中被引用dfgh fatal error LNK1120: 11 个无法解析的外部命令
象这种错误 怎么办
我 使用 visual stdio .net 2002 final 包含各种库 我都 试过 了;有 ws2_32.lib  wsock32.lib 还有 console(这个不会改,郁闷中) 主程序如下:
// dfgh.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include "dfgh.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif#include "Winsock2.h"#include "stdio.h"
// 唯一的应用程序对象CWinApp theApp;using namespace std;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0; // 初始化 MFC 并在失败时显示错误
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: 更改错误代码以符合您的需要
_tprintf(_T("致命错误:MFC 初始化失败\n"));
nRetCode = 1;
}
else
{
// TODO: 在此处为应用程序的行为编写代码。 SOCKET socketid;
struct sockaddr_in server;
SOCKET msgsocket;
struct sockaddr client;
char buffer[1024];
int rval; //进行协商
WORD wVersionRequested;
WSADATA wsaData;
int err;
    //使要求的版本为1.1
wVersionRequested=MAKEWORD(1,1);
err=WSAStartup(wVersionRequested, &wsaData); if (err!=0)
{
//用户没有找到一个可以使用的DLL,返回
perror("there is no DLL to use");
return 0;
} //确保Windows Sockets DLL支持1.1。
if ( (LOBYTE(wsaData.wVersion)!=1) || (HIBYTE(wsaData.wVersion)!=1) )
{
perror("there is not right DLL");
WSACleanup();
return 1;
}
//建立Sockets
socketid=socket(AF_INET,SOCK_STREAM,0);
if (socketid==INVALID_SOCKET)
{
perror("there is error in opening sockets\n");
return 2;
}

//使用端口号5050来命名服务器的Sockets
server.sin_family=AF_INET;
server.sin_port=htons(5050);
server.sin_addr.S_un.S_un_b.s_b1=192;
server.sin_addr.S_un.S_un_b.s_b2=168;
server.sin_addr.S_un.S_un_b.s_b3=0;
server.sin_addr.S_un.S_un_b.s_b4=66; if ( bind(socketid, (sockaddr *)&server,sizeof(server))<0)
{
perror("there is error in binding sockets\n");
return 3;
}

//输出端口号
int length=sizeof(server);
if(getsockname(socketid,(struct sockaddr *)&server,&length)<0)
{
perror("there is error in getting name");
return 4;
}
printf("socket port %d\n",ntohs(server.sin_port)); //开始接收连接
listen(socketid,5);
   
//进入一个死循环
int len=sizeof(struct sockaddr);
do
{
msgsocket=accept(socketid,(struct sockaddr *)&client,(int*)&len);
if (msgsocket==INVALID_SOCKET)
{
perror("there is error in open new sockets");
break;
}
else do
{
memset(buffer,0,sizeof(buffer));
if ( (rval==recv(msgsocket,buffer,1024,MSG_PEEK))==-1 )
{
perror("there is error in recving");
break;
}
if (rval==0)
printf("ending connection");
else
printf("-->%s\n",buffer);
}while(rval!=0);

closesocket(msgsocket);

}while(TRUE); closesocket(socketid);
WSACleanup();
}
return nRetCode;
}