热血三国3吕玲绮:为什么我vc中调用gethostname都返回-1,得到本机的主机名都会失败吗?

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 11:28:18
char FullName[2555];
int j = gethostname(FullName,sizeof(FullName));

返回-1,FullName里面都是乱码

调用gethostname之前,必须成功调用过 WSAStartup 函数,
是用于网络连接获取主机名
我怀疑你是不是要 使用GetComputerName,来获取本地计算机的名字。

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
char HostName[80];
void main ()
{
memset(HostName,0,sizeof(HostName));

DWORD i= 80;

GetComputerName(HostName,&i);
printf("%s",HostName);

}

你的用法是正确的.
char FullName[2555]; 由于里面保存的都是内存里的随机值,当然你看到里面都是乱码啦!
你可以用memset(FullName,0 ,2555);来将FullName的每个元素都置为0,看到的就不是乱码了!

可以用WSAGetLastError 来查看函数执行错误代码

char FullName[2555]="";
就是赋个初值就可以了