教你怎么在windows上用C语言获得当前计算机名

2025-11-15 01:37:06

1、我们先来看看程序效果图,获得当前计算机名。

然后使用windows的佛敏联hostname命令查看下当前计算机名,可以看到准确无误。

很多小伙伴肯定就会问,为什么程序获得的计算机名和hostname显示的计算机名不一样呢?这是因为windows是不敏感大小写的,也就是说(大小写都一样)

教你怎么在windows上用C语言获得当前计算机名

2、OK,我们开始写,这里小编用的Dev C++,当然什么编译器什么IDE都不重要。

这里小编只用到了2个头文件,第一个是标准头文件stdio.h,第二个则是windows.h。

windows.h是C和windowsAPI交互的一个头文件,这个头文件内定义了所有的windows API函数原型。

我们先include这2个头文件,然后再写出一个标准的main函数。

#include <stdio.h>

#include <windows.h>

int main(int argc,char * argv[])

{

  return 0;

}

教你怎么在windows上用C语言获得当前计算机名

3、我们要用到API内的GetComputerName这个API函数。

该API函数原型如下:

BOOL GetComputerName( LPTSTR lpBuffer,  LPDWORD lpnSize);

返回一个布尔类型,成功为True(非0),失败为假,C89编译器返回0

参数LPTSTR lpBuffer是作为一个字符串缓冲区,是一个字符串指针,用于接收我们的计算机名。

而LPDWORD lpnSize则是传递一个lpBuffer缓冲区大小的指针变量,注意是指针。

我们可以看看MSDN上的描述。

教你怎么在windows上用C语言获得当前计算机名

4、还有请注意一点,我们要怎么定义字符串缓冲区大小?在上一步的图片中小编就有意的用红色标识了这样一个宏:MAX_COMPUTERNAME_LENGTH + 1

MAX_COMPUTERNAME_LENGTH顾名思义是windows中设置计算机名的最大字符长度,+1是为了字符串\0结束标记

OK,我们可以开始写这样一个代码:

int sBufSize = MAX_COMPUTERNAME_LENGTH + 1;

char computerName[sBufSize];

写到这里我们还需要一个特别重要的变量,那就是LPDWORD类型的变量,如果稍微知道一点windows编程就知道windows在定义某种数据类型的时候,往往是L代码long长,S代表short短,P则是代表指针pointer,后面跟着的是数据类型。

由此我们可见LPDWORD类况伐型是一种DWORD长指针类型。

知道这些之后,我们就可以往下写了。

DWORD bufSizeP = sBufSize;

GetComputerName(computerName, &bufSizeP);

教你怎么在windows上用C语言获得当前计算机名

5、然后我们printf打印出我们获得的计算机名。

printf("您当前的计算机名是——[%s]",computerName);

然后编译运行看到结果。救侵

教你怎么在windows上用C语言获得当前计算机名

1、怎么关注?

在经验的右上角小编头像旁边点击关注,如图。

教你怎么在windows上用C语言获得当前计算机名

2、怎么点赞?

请在经验左侧点赞,如图。

教你怎么在windows上用C语言获得当前计算机名

3、怎么投票?

在经验的下方点击投票,如图。

教你怎么在windows上用C语言获得当前计算机名

4、如果觉得小编写的还不错,可以动动鼠标把它分享给您的朋友。

如何分享,鼠标移动到右下角第一个按钮上,在弹出的选项中进行分享,如图。

不尽感激。

教你怎么在windows上用C语言获得当前计算机名

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢