首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

error LNK2001: unresolved external symbol _main等.该如何处理

2013-07-04 
error LNK2001: unresolved external symbol _main等.本帖最后由 oyljerry 于 2012-01-03 11:04:49 编辑#i

error LNK2001: unresolved external symbol _main等.
本帖最后由 oyljerry 于 2012-01-03 11:04:49 编辑 #include "stdafx.h"
#include <WinSock.h>
#include <time.h>
#include <windows.h>


#pragma comment (lib,"Ws2_32")   
   
struct NTP_Packet   
{   
  int Control_Word;   
  int root_delay;   
  int root_dispersion;   
  int reference_identifier;   
  __int64 reference_timestamp;   
  __int64 originate_timestamp;   
  __int64 receive_timestamp;   
  int transmit_timestamp_seconds;   
  int transmit_timestamp_fractions;   
};

/************************************************************************/   
/* 函数说明:自动与时间服务器同步更新   
/* 参数说明:无   
/* 返 回 值:成功返回TRUE,失败返回FALSE   
/************************************************************************/   
BOOL UpdateSysTime()   
{   
  WORD wVersionRequested;   
  WSADATA wsaData;   
    
  // 初始化版本   
  wVersionRequested = MAKEWORD( 1, 1 );   
  if (0!=WSAStartup(wVersionRequested, &wsaData))   
  {   
  WSACleanup();   
  return FALSE;   
  }   
  if (LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1)   
  {   
  WSACleanup( );   
  return FALSE;   
  }   
   
  // 这个IP是中国大陆时间同步服务器地址,可自行修改   
  SOCKET soc=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);   
  struct sockaddr_in addrSrv;   
  addrSrv.sin_addr.S_un.S_addr=inet_addr("192.43.244.18");   
  addrSrv.sin_family=AF_INET;   
  addrSrv.sin_port=htons(123);   
    
  NTP_Packet NTP_Send,NTP_Recv;   
  NTP_Send.Control_Word = htonl(0x0B000000);   
  NTP_Send.root_delay = 0;   
  NTP_Send.root_dispersion = 0;   
  NTP_Send.reference_identifier = 0;   
  NTP_Send.reference_timestamp = 0;   
  NTP_Send.originate_timestamp = 0;   
  NTP_Send.receive_timestamp = 0;   
  NTP_Send.transmit_timestamp_seconds = 0;   
  NTP_Send.transmit_timestamp_fractions = 0;   
    
  if(SOCKET_ERROR==sendto(soc,(const char*)&NTP_Send,sizeof(NTP_Send),   
  0,(struct sockaddr*)&addrSrv,sizeof(addrSrv)))   
  {   
  closesocket(soc);   
  return FALSE;   
  }   


  int sockaddr_Size =sizeof(addrSrv);   
  if(SOCKET_ERROR==recvfrom(soc,(char*)&NTP_Recv,sizeof(NTP_Recv),   
  0,(struct sockaddr*)&addrSrv,&sockaddr_Size))   
  {   
  closesocket(soc);   
  return FALSE;   
  }   
  closesocket(soc);   
  WSACleanup();   
    
  SYSTEMTIME newtime;   
  float Splitseconds;   
  struct tm *lpLocalTime;   
  time_t ntp_time;   
   
  // 获取时间服务器的时间   
  ntp_time = ntohl(NTP_Recv.transmit_timestamp_seconds)-2208988800;   
  lpLocalTime = localtime(&ntp_time);   
  if(lpLocalTime == NULL)   
  {   
  return FALSE;   
  }   
    
  // 获取新的时间   
  newtime.wYear =lpLocalTime->tm_year+1900;   
  newtime.wMonth =lpLocalTime->tm_mon+1;   
  newtime.wDayOfWeek =lpLocalTime->tm_wday;   
  newtime.wDay =lpLocalTime->tm_mday;   
  newtime.wHour =lpLocalTime->tm_hour;   
  newtime.wMinute =lpLocalTime->tm_min;   
  newtime.wSecond =lpLocalTime->tm_sec;   
    
  // 设置时间精度   
  Splitseconds=(float)ntohl(NTP_Recv.transmit_timestamp_fractions);   
  Splitseconds=(float)0.000000000200 * Splitseconds;   
  Splitseconds=(float)1000.0 * Splitseconds;   
  newtime.wMilliseconds = (unsigned short)Splitseconds;   
   
  // 修改本机系统时间   
  SetLocalTime(&newtime);   
  return TRUE;   
}
此程序用于两台计算机对时与internet时间同步,
编译后出现错误:fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
我创建的是windows console application,C/C++源程序,将#include "stdafx.h"这行去掉以后缺出现error LNK2001: unresolved external symbol _main,将console改成windows后又出现LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16,这两个错误交替出现的现象,就是project里边改成windows和console时候都不对,形成这种循环错误,这是怎么回事儿

[解决办法]
不管是控制台程序还是window程序,你总得有个入口函数吧。控制台你得有个main,windows程序你得要有个WinMain啊
[解决办法]
#pragma comment (lib,"Ws2_32.lib")   
------解决方案--------------------


增加上main或者WinMain函数
还需要
#pragma comment (lib,"Ws2_32.lib")
[解决办法]
用VC编译器建立console工程,然后添加代码

热点排行