1,涉及API
方法一、使用GetComputerName。
原型:
BOOL WINAPI GetComputerName(
__out LPTSTR lpBuffer,
__inout LPDWORD lpnSize
);
lpBuffer : 用来接收主机名的字符串。
lpnSize : 返回字符串长度。
方法二、使用 WinSock2.h 中的 gethostname 。
原型:
int
WSAAPI
gethostname(
__out_bcount(namelen) char FAR * name,
__in int namelen
);
name: 接收主机名的字符串。
namelen: 输入,指定字符串的长度。
2,实现
方法一:
char szComputerName[255] = {0};
DWORD dw;
//获取主机名
GetComputerNameA(szComputerName,&dw);
方法二:
#include "stdafx.h"
#include <iostream>
#include <WinSock2.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CHAR szComputerName[MAX_PATH] = {0};
WSAData data;
if(WSAStartup(MAKEWORD(1,1),&data) != 0)
{
return 1;
}
if(gethostname(szComputerName,MAX_PATH) == SOCKET_ERROR)
{
return 1;
}
WSACleanup();
return 0;
}