获取电脑的名称,下面是函数的原: BOOL GetComputerName(LPWSTR lpBuffer,LPDWORD nSize) lpBuffer是传入的缓冲区指针 nSize标识传入的缓冲区宽度 需要说明的是有两种方法来确认缓冲区的长度: 1、在WinBase.h中定义了一个电脑名称最大长度的常数MAX_COMPUTERNAME_LENGTH(值为15),使用这个变量来创建缓冲区是安全的,因为电脑名称不会超过这个长度; 2、另一种方法是调用GetComputerName给lpBuffer传入NULL,nSize传入DWORD变量的地址。函数将把电脑实际名称的缓冲区大小返回给nSize。 下面是第二种方法的示例: wstring getComputerName() { DWORD size=0; wstring wstr; GetComputerName(NULL,&size); //得到电脑名称长度 wchar_t *name=new wchar_t[size]; if(GetComputerName(name,&size)) { wstr=name; } delete [] name; return wstr; } 获取当前用户名: BOOL GetUserName(LPWSTR lpBuffer,LPDWORD pcbBuffer) lpBuffer是传入的缓冲区指针 pcbBuffer标识传入的缓冲区宽度 函数的使用方法和上面几乎相同: wstring getUserName() { DWORD size=0; wstring wstr; GetUserName(NULL,&size); wchar_t *name=new wchar_t[size]; if(GetUserName(name,&size)) { wstr=name; } delete [] name; return wstr; }