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;
}


如图,得到的字符串就是 右键“我的电脑”后的计算机名:


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐