0
我正在編寫某人的其他代碼,這是爲某些套接字編程編寫的。這個項目有以下兩個文件。錯誤C2373:'inet_addr':重新定義;不同類型的修飾符
SOCKUTIL.H
#if !defined(SOCKUTIL_H)
#define SOCKUTIL_H
unsigned long inet_addr(const char *sIp);
unsigned short htons(unsigned short port);
#endif
sockUtil.cpp
#include "stdafx.h"
#include "sockutil.h"
#include <stdlib.h>
#include <string.h>
unsigned long inet_addr(const char *sIp)
{
int octets[4];
int i;
const char *auxCad = sIp;
unsigned long lIp = 0;
//we extract each octet of the ip address
//atoi will get characters until it found a non numeric character(in our case '.')
for(i = 0; i < 4; i++)
{
octets[i] = atoi(auxCad);
if(octets[i] < 0 || octets[i] > 255)
{
return(0);
}
lIp |= (octets[i] << (i * 8));
//update auxCad to point to the next octet
auxCad = strchr(auxCad, '.');
if(auxCad == NULL && i != 3)
{
return(0);
}
auxCad++;
}
return(lIp);
}
unsigned short htons(unsigned short port)
{
unsigned short portRet;
portRet = ((port << 8) | (port >> 8));
return(portRet);
}
該項目最初是在VC6開發,當我在VS2013打開它時,Visual Studio將其轉換。但是當我建立它,那麼它給出以下錯誤。
錯誤C2373:'inet_addr':重新定義;不同類型的修飾符
錯誤C2373:'htons':重新定義;不同類型的修飾符
我試圖找到解決方案,但沒有得到該怎麼做。我對此沒有太多的瞭解。
編輯:此代碼不使用#include Winsock2.h。我查了幾個可用的在線解決方案,聲稱這個庫是重新定義的原因,但在這種情況下這不是真的。
謝謝,它幫助。 –