📄 waros.cpp
字号:
#include "StdAfx.h"#include "WarOs.h" // class implemented#ifndef WAR_FSTREAM_INCLUDED# define WAR_FSTREAM_INCLUDED# include <fstream>#endif/////////////////////////////// PUBLIC ///////////////////////////////////////WarOs *WarOs::mspThis;//============================= LIFECYCLE ====================================WarOs::WarOs() throw(WarException){ if (mspThis) WarThrow(WarError(WAR_ERR_ALREADY_INITIALIZED), NULL);#ifdef WIN32 mOsInfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); GetVersionEx(&mOsInfo);#endif mspThis = this;}// WarOsWarOs::~WarOs(){ if (mspThis == this) mspThis = NULL;}// ~WarOs//============================= OPERATORS ====================================//============================= OPERATIONS ===================================WarOs::tmpfile_path_t WarOs::GetNewTmpFileName(tmpfile_ccstr_t tmpPath, tmpfile_ccstr_t preFix){ return mTmpName.GetTmpName(tmpPath, preFix);}//============================= ACCESS ===================================//============================= INQUIRY ===================================bool WarOs::IsNt() const{#ifdef WIN32 return VER_PLATFORM_WIN32_NT == mOsInfo.dwPlatformId;#else return false;#endif}std::string WarOs::GetOsName() const{#ifdef WIN32 SYSTEM_INFO si; GetSystemInfo(&si); LPCSTR CPU = ""; switch(si.wProcessorArchitecture) { case PROCESSOR_ARCHITECTURE_INTEL: CPU = "x86"; switch(si.wProcessorLevel & 0xff) { case 3: CPU = "i386"; break; case 4: CPU = "i486"; break; case 5: CPU = "Pentium"; break; case 6: CPU = "Pentium pro/II/III/IV"; break; } break; case PROCESSOR_ARCHITECTURE_MIPS: CPU = "Mips"; break; case PROCESSOR_ARCHITECTURE_PPC: CPU = "PPC"; break; case PROCESSOR_ARCHITECTURE_ALPHA: CPU = "Alpha"; switch(si.wProcessorLevel) { case 21064: CPU = "Alpha 21064"; break; case 21066: CPU = "Alpha 21066"; break; case 21164: CPU = "Alpha 21164"; break; } break; } char buf[128]; sprintf(buf,"Microsoft Windows (%s %d.%d %d %s %d-CPU)", (mOsInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) ? "Win9X/ME" : (mOsInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) ? "NT/2000" : "Unknown", mOsInfo.dwMajorVersion, mOsInfo.dwMinorVersion, mOsInfo.dwBuildNumber, CPU, si.dwNumberOfProcessors); return buf;#elif defined(HAVE_UNAME) struct utsname uts; memset(&uts, 0, sizeof(uts)); if (uname(&uts) == 0) { std::string rval; rval = uts.sysname; rval += " ("; rval += uts.release; rval += ' '; rval += uts.version; rval += ' '; rval += uts.machine; rval += ')'; return rval; }#endif return "Generic UNIX/POSIX";}/////////////////////////////// PROTECTED ////////////////////////////////////////////////////////////////// PRIVATE ///////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -