fastdo  0.6.16
winux 命名空间参考

跨平台基础功能库 更多...

struct  $a
 Mixed构造数组辅助类 更多...
 
struct  $c
 Mixed构造集合辅助类 更多...
 
struct  _CanEnableShared
 
struct  _CanEnableShared< _Yty, VoidT< typename _Yty::_EsftType > >
 
class  ArrayAssigner
 Array赋值器 更多...
 
struct  Bin0
 二进制数。编译时计算,0开头(基于8进制) 更多...
 
struct  Bin0< 0 >
 
class  BlockInFile
 分块输入文件 更多...
 
class  BlockOutFile
 分块输出文件 更多...
 
class  Buffer
 缓冲区,表示内存中一块二进制数据(利用malloc/realloc进行内存分配) 更多...
 
struct  CharSpec
 字符类型规范 更多...
 
struct  CharSpec< char >
 
struct  CharSpec< char16 >
 
struct  CharSpec< char32 >
 
struct  CharSpec< wchar >
 
class  Collection
 集合类 更多...
 
class  CommandLineVars
 命令行变量解析器 更多...
 
class  Condition
 条件变量 更多...
 
class  ConditionAttr
 条件变量属性 更多...
 
class  Configure
 配置文件类 更多...
 
class  ConfigureSettings
 更强大的配置文件类 更多...
 
class  ConsoleAttr
 控制台属性类 更多...
 
class  ConsoleAttrT
 控制台属性类模板 更多...
 
class  ConsoleOuputMutexScopeGuard
 控制台输出ScopeGuard 更多...
 
class  Conv
 字符串编码转换 更多...
 
class  ConvFrom
 指定编码转到本地编码 更多...
 
class  ConvTo
 本地编码转到指定编码 更多...
 
class  CsvReader
 CSV文件读取器 更多...
 
class  CsvWriter
 CSV文件写入器 更多...
 
class  DateTimeL
 本地日期时间。L意思'local',不包含时区信息 更多...
 
class  DirIterator
 目录文件枚举器 更多...
 
class  DllLoader
 DLL动态载入器 更多...
 
class  DllLoaderError
 Dll加载器错误 更多...
 
class  EnableSharedFromThis
 
class  Error
 错误类 更多...
 
class  File
 文件操作类 更多...
 
class  FileMapping
 文件映射。可以用来读写大文件 更多...
 
class  FileSysError
 文件系统错误类 更多...
 
struct  FuncTraits
 函数特征 更多...
 
struct  FuncTraits< _RetType __cdecl(_ArgTypes...) >
 
struct  FuncTraits< _RetType __fastcall(_ArgTypes...) >
 
struct  FuncTraits< _RetType __stdcall(_ArgTypes...) >
 
struct  FuncTraits< _RetType(__cdecl *)(_ArgTypes...) >
 
struct  FuncTraits< _RetType(__fastcall *)(_ArgTypes...) >
 
struct  FuncTraits< _RetType(__stdcall *)(_ArgTypes...) >
 
struct  FuncTraits< _RetType(_Cls::*)(_ArgTypes...) >
 
struct  FuncTraits< _RetType(_Cls::*)(_ArgTypes...) const >
 
struct  FuncTraits< _RetType(_Cls::*)(_ArgTypes...) const volatile >
 
struct  FuncTraits< _RetType(_Cls::*)(_ArgTypes...) volatile >
 
struct  FuncTraits< std::function< _RetType __cdecl(_ArgTypes...) > >
 
struct  FuncTraits< std::function< _RetType __fastcall(_ArgTypes...) > >
 
struct  FuncTraits< std::function< _RetType __stdcall(_ArgTypes...) > >
 
struct  FuncWrapper
 函数包装,用来将不同调用约定的函数统一包装成默认约定 更多...
 
class  GrowBuffer
 高效的可增长缓冲区,1.33倍冗余量 更多...
 
struct  IFile
 文件接口 更多...
 
class  ILockObj
 同步锁对象接口 更多...
 
struct  IndexSequence
 Tuple参数序列 更多...
 
class  Invoker
 Invoker模板 更多...
 
class  Invoker< _Fx, typename std::enable_if< !std::is_same< typename winux::FuncTraits< _Fx >::ClassType, void >::value, typename winux::FuncTraits< _Fx >::ClassType >::type, void >
 
class  Invoker< _Fx, void, typename std::enable_if< !std::is_same< typename winux::FuncTraits< _Fx >::ReturnType, void >::value, typename winux::FuncTraits< _Fx >::ReturnType >::type >
 
class  Invoker< _Fx, void, void >
 
struct  Literal
 
struct  Literal< char >
 
struct  Literal< char16 >
 
struct  Literal< char32 >
 
struct  Literal< wchar >
 
class  Locale
 设置locale信息 更多...
 
struct  MakeIndexSequence
 
struct  MakeIndexSequence< 0, IndexSequence< _Index... > >
 
struct  MakeIndexSequence< _Num, IndexSequence< _Index... > >
 
struct  MakeVoid
 
class  MapAssigner
 MAP赋值器 更多...
 
class  MD5
 
class  Members
 成员隐藏(By pointer) 更多...
 
class  MemoryFile
 内存式文件 更多...
 
class  Mixed
 混合体,能表示多种类型的值 更多...
 
class  MixedError
 混合体错误 更多...
 
class  MixedLess
 Mixed集合类型的less谓词 更多...
 
class  MixedLessI
 Mixed集合类型的less谓词,大小写无关 更多...
 
class  MultiMatch
 多项匹配/替换 更多...
 
class  Mutex
 互斥量 更多...
 
class  MutexAttr
 互斥量属性 更多...
 
class  MutexNative
 原生互斥锁 更多...
 
class  Packet
 数据包,用来表示一些POD结构体用于网络通信。通常这类结构体实际大小 > sizeof(这类结构体) 更多...
 
class  PlainMembers
 Plain成员隐藏(By plain block) 更多...
 
class  RecursiveMutex
 递归锁 更多...
 
class  RefParam
 
class  Runable
 Runable模板 更多...
 
class  RunableInvoker
 
class  RunableT
 
class  RunableT< _Fx, _TargetTuple, void >
 
struct  Schedule
 线程调度相关静态方法 更多...
 
struct  ScheduleParam
 调度参数 更多...
 
class  ScopeGuard
 作用域范围保护 更多...
 
class  SharedCustomDeleterContext
 Shared自定义删除器场景 更多...
 
class  SharedDefaultDeleterContext
 Shared默认删除器场景 更多...
 
class  SharedDeleterContext
 Shared删除器场景基类/Shared引用计数场景 更多...
 
class  SharedHandle
 引用计数共享句柄,管理各种资源的自动释放,赋值则引用计数加一。 更多...
 
class  SharedMemory
 共享内存,可以跨进程访问。常用于进程间通讯 更多...
 
class  SharedMemoryT
 共享内存(POD类型数据)类模板 更多...
 
class  SharedPointer
 引用计数共享指针 更多...
 
class  SimpleCustomDeleterContext
 Simple自定义删除器场景 更多...
 
class  SimpleDefaultDeleterContext
 Simple默认删除器场景 更多...
 
class  SimpleDeleterContext
 Simple删除器场景基类 更多...
 
class  SimpleHandle
 简单句柄类,管理各种资源的自动释放,赋值相当于传递管理权。 更多...
 
class  SimplePointer
 简单指针 更多...
 
class  SmartPtrError
 智能指针错误 更多...
 
class  SystemError
 系统相关错误 更多...
 
class  SZInput
 填充based-zero字符串缓冲区包装类 更多...
 
class  Task
 代表投递到线程池的一个任务,用于等待执行完毕获取返回值或者接着投递下一个任务 更多...
 
struct  TaskCtx
 任务数据场景 更多...
 
struct  TaskCtxT
 
struct  TaskCtxT< void >
 
class  TextArchive
 文本文档类。可载入文本文件自动识别BOM文件编码,转换为指定编码。
更多...
 
class  Thread
 线程 更多...
 
class  ThreadAttr
 线程属性 更多...
 
class  ThreadGroup
 线程组 更多...
 
class  ThreadId
 线程ID 更多...
 
class  ThreadPool
 线程池,创建一组线程等待着从任务队列中获取任务执行 更多...
 
class  ThreadSysError
 线程相关错误 更多...
 
class  TlsKey
 TLS Key. 更多...
 
class  TlsVar
 TLS Var. 更多...
 
class  UnicodeConverter
 Unicode转换器。可以使UTF-8、UTF-16、UTF-32字符串相互自由转换,字节序为平台默认 更多...
 
class  Unzip
 ZIP解压缩 更多...
 
class  WeakHandle
 弱句柄 更多...
 
class  WeakPointer
 弱指针 更多...
 
class  XStringWriter
 用来使得String能够用operator<<来赋值 更多...
 
class  Zip
 ZIP压缩 更多...
 

类型定义

typedef winux::ulong ZRESULT
 
template<typename... _Ty>
using VoidT = typename MakeVoid< _Ty... >::type
 
using StringWriter = XStringWriter< tchar >
 
using AnsiStringWriter = XStringWriter< char >
 
using UnicodeStringWriter = XStringWriter< wchar >
 
using UnicodeString16Writer = XStringWriter< char16 >
 
using Utf16StringWriter = XStringWriter< char16 >
 
using UnicodeString32Writer = XStringWriter< char32 >
 
using Utf32StringWriter = XStringWriter< char32 >
 
using UC = UnicodeConverter
 UnicodeConverter简单别名 更多...
 
typedef int HPipe
 
typedef pid_t HProcess
 
typedef int pid_t
 
typedef int int32
 
typedef unsigned int uint
 
typedef unsigned int uint32
 
typedef unsigned long ulong
 
typedef short int16
 
typedef unsigned short ushort
 
typedef unsigned short uint16
 
typedef char int8
 
typedef unsigned char uint8
 
typedef char16_t char16
 
typedef char32_t char32
 
typedef intptr_t offset_t
 
typedef intptr_t ssize_t
 
typedef size_t usize_t
 
typedef wchar_t wchar
 
typedef unsigned __int64 uint64
 
typedef unsigned __int64 ulonglong
 
typedef __int64 int64
 
typedef __int64 longlong
 
typedef char tchar
 
typedef unsigned char byte
 
template<typename _ChTy >
using XString = std::basic_string< _ChTy, std::char_traits< _ChTy >, std::allocator< _ChTy > >
 
typedef XString< char > AnsiString
 
typedef XString< char > Utf8String
 
typedef XString< wcharUnicodeString
 
typedef XString< char16UnicodeString16
 
typedef XString< char16Utf16String
 
typedef XString< char32UnicodeString32
 
typedef XString< char32Utf32String
 
typedef XString< tcharString
 
template<typename _ChTy >
using XStringArray = std::vector< XString< _ChTy > >
 
typedef XStringArray< char > AnsiStringArray
 
typedef XStringArray< char > Utf8StringArray
 
typedef XStringArray< wcharUnicodeStringArray
 
typedef XStringArray< char16UnicodeString16Array
 
typedef XStringArray< char32UnicodeString32Array
 
typedef XStringArray< char16Utf16StringArray
 
typedef XStringArray< char32Utf32StringArray
 
typedef XStringArray< tcharStringArray
 
typedef std::map< String, StringStringStringMap
 
typedef std::pair< String, StringStringStringPair
 
typedef std::vector< MixedMixedArray
 
typedef std::map< String, MixedStringMixedMap
 
typedef std::pair< String, MixedStringMixedPair
 
template<typename _ChTy >
using CharTypeConstrain = typename CharSpec< typename std::decay< _ChTy >::type >::Type
 字符类型约束 更多...
 
typedef std::map< Mixed, Mixed, MixedLessMixedMixedMap
 
typedef std::map< Mixed, Mixed, MixedLessIMixedMixedMapI
 
typedef std::pair< Mixed const, MixedMixedMixedPair
 

枚举

enum  ConsoleColorAttrFlags : winux::ushort {
  fgBlack = 0, fgNavy = 1, fgAtrovirens = 2, fgTeal = 3,
  fgMaroon = 4, fgPurple = 5, fgOlive = 6, fgSilver = 7,
  fgGray = 8, fgIntensity = fgGray, fgBlue = 9, fgGreen = 10,
  fgAqua = 11, fgRed = 12, fgFuchsia = 13, fgYellow = 14,
  fgWhite = 15, bgNavy = 0x0100, bgAtrovirens = 0x0200, bgTeal = 0x0300,
  bgMaroon = 0x0400, bgPurple = 0x0500, bgOlive = 0x0600, bgSilver = 0x0700,
  bgBlack = 0x0800, bgWhite = 0x0000, bgGray = bgSilver, bgBlue = bgNavy,
  bgGreen = bgAtrovirens, bgAqua = bgTeal, bgRed = bgMaroon, bgFuchsia = bgPurple,
  bgYellow = bgOlive, ccaIgnore = 0x8000
}
 颜色属性标记 更多...
 
enum  ConsoleTextLayoutAlignment { ctlaLeft, ctlaCenter, ctlaRight }
 文本对齐方式 更多...
 
enum  EncryptErrorCode { ERR_SUCCEED, ERR_DATASIZE, ERR_BUFFSIZE }
 内容加密错误代码 更多...
 
enum  FileEncoding {
  feUnspec, feMultiByte, feUtf8, feUtf8Bom,
  feUtf16Le, feUtf16Be, feUtf16 = feUtf16Be, feUtf32Le,
  feUtf32Be, feUtf32 = feUtf32Be
}
 文件编码 更多...
 
enum  SeekType { seekSet = 0, seekCur = 1, seekEnd = 2 }
 Seek类型 更多...
 
enum  StrToXqFlags { stqUnsigned = 1, stqNegative = 2, stqOverflow = 4, stqReadDigit = 8 }
 字符串转换成数字Flags 更多...
 
enum  CollateIdentifierStringFlag : winux::uint {
  wordRaw = 0x00, wordAllUpper = 0x01, wordAllLower = 0x02, wordFirstCharUpper = 0x03,
  nameLowerCamelCase = 0x10 | wordFirstCharUpper, nameUpperCamelCase = 0x20 | wordFirstCharUpper, namePascalCase = nameUpperCamelCase, nameSnakeCase = 0x30 | wordAllLower,
  nameKebabCase = 0x40 | wordAllLower, nameScreamingSnakeCase = 0x50 | wordAllUpper
}
 整理标识符串的标记 更多...
 
enum  FileMappingFlag {
  fmfUnspec = 0, fmfReadOnly = 1, fmfWriteCopy = 2, fmfReadWrite = 3,
  fmfExecuteReadOnly = 5, fmfExecuteWriteCopy = 6, fmfExecuteReadWrite = 7
}
 文件映射旗标 更多...
 
enum  SchedulePolicy {
  schedOther = 0, schedFifo, schedRr, schedMin = schedOther,
  schedMax = schedRr
}
 线程调度策略 更多...
 

函数

template<typename _VarType >
std::ostream & operator<< (std::ostream &out, ConsoleAttrT< _VarType > const &tr)
 
template<typename _VarType >
std::istream & operator>> (std::istream &in, ConsoleAttrT< _VarType > const &tr)
 
template<typename _VarType >
std::wostream & operator<< (std::wostream &out, ConsoleAttrT< _VarType > const &tr)
 
template<typename _VarType >
std::wistream & operator>> (std::wistream &in, ConsoleAttrT< _VarType > const &tr)
 
template<typename _VarType >
ConsoleAttrT< _VarType > ConsoleColor (winux::ushort attr, _VarType const &v, bool isSetBgColor=false)
 控制台颜色函数 更多...
 
template<typename _ChTy >
static void OutputV (std::basic_ostream< _ChTy > &out)
 
template<typename _ChTy , typename _Ty , typename... _ArgType>
static void OutputV (std::basic_ostream< _ChTy > &out, _Ty &&a, _ArgType &&...arg)
 
template<typename... _ArgType>
static void ColorOutputLine (winux::ConsoleAttr const &ca, _ArgType &&...arg)
 
template<typename... _ArgType>
static void ColorOutput (winux::ConsoleAttr const &ca, _ArgType &&...arg)
 
String ConsoleTextLayout (String const &text, size_t maxLength, ConsoleTextLayoutAlignment align=ctlaLeft, String::value_type blankCh= ' ', bool isTrunc=true, size_t ellipsis=3)
 控制台文本布局,按指定长度输出文本。可以控制对齐方式,是否截断,截断省略号 更多...
 
template<typename _ChTy >
XString< _ChTy > UrlEncode (void const *buf, size_t size)
 URL编码 更多...
 
template<>
XString< char > UrlEncode (void const *buf, size_t size)
 URL编码 更多...
 
template<>
XString< wcharUrlEncode (void const *buf, size_t size)
 URL编码 更多...
 
template<>
XString< char16UrlEncode (void const *buf, size_t size)
 URL编码 更多...
 
template<>
XString< char32UrlEncode (void const *buf, size_t size)
 URL编码 更多...
 
template<typename _ChTy >
XString< _ChTy > UrlEncode (AnsiString const &data)
 
template<typename _ChTy >
XString< _ChTy > UrlEncodeBuffer (Buffer const &buf)
 
template<typename _ChTy >
AnsiString UrlDecode (XString< _ChTy > const &encodedStr)
 URL编码,与UrlEncode()配套 更多...
 
template<>
AnsiString UrlDecode (XString< char > const &encodedStr)
 
template<>
AnsiString UrlDecode (XString< wchar > const &encodedStr)
 
template<>
AnsiString UrlDecode (XString< char16 > const &encodedStr)
 
template<>
AnsiString UrlDecode (XString< char32 > const &encodedStr)
 
template<typename _ChTy >
Buffer UrlDecodeBuffer (XString< _ChTy > const &encodedStr)
 URL编码,与UrlEncodeBuffer()配套 更多...
 
template<>
Buffer UrlDecodeBuffer (XString< char > const &encodedStr)
 
template<>
Buffer UrlDecodeBuffer (XString< wchar > const &encodedStr)
 
template<>
Buffer UrlDecodeBuffer (XString< char16 > const &encodedStr)
 
template<>
Buffer UrlDecodeBuffer (XString< char32 > const &encodedStr)
 
AnsiString UrlDecode (AnsiString const &encodedStr)
 
Buffer UrlDecodeBuffer (AnsiString const &encodedStr)
 
template<typename _ChTy >
XString< _ChTy > UriComponentEncode (void const *buf, size_t size)
 URI组成部分编码,遵循RFC1738. 更多...
 
template<>
XString< char > UriComponentEncode (void const *buf, size_t size)
 URI组成部分编码,遵循RFC1738. 更多...
 
template<>
XString< wcharUriComponentEncode (void const *buf, size_t size)
 URI组成部分编码,遵循RFC1738. 更多...
 
template<>
XString< char16UriComponentEncode (void const *buf, size_t size)
 URI组成部分编码,遵循RFC1738. 更多...
 
template<>
XString< char32UriComponentEncode (void const *buf, size_t size)
 URI组成部分编码,遵循RFC1738. 更多...
 
template<typename _ChTy >
XString< _ChTy > UriComponentEncode (AnsiString const &data)
 
template<typename _ChTy >
XString< _ChTy > UriComponentEncodeBuffer (Buffer const &buf)
 
template<typename _ChTy >
AnsiString UriComponentDecode (XString< _ChTy > const &encodedStr)
 URI组成部分编码,与UriComponentEncode()配套 更多...
 
template<>
AnsiString UriComponentDecode (XString< char > const &encodedStr)
 
template<>
AnsiString UriComponentDecode (XString< wchar > const &encodedStr)
 
template<>
AnsiString UriComponentDecode (XString< char16 > const &encodedStr)
 
template<>
AnsiString UriComponentDecode (XString< char32 > const &encodedStr)
 
template<typename _ChTy >
Buffer UriComponentDecodeBuffer (XString< _ChTy > const &encodedStr)
 URI组成部分编码,与UriComponentEncodeBuffer()配套 更多...
 
template<>
Buffer UriComponentDecodeBuffer (XString< char > const &encodedStr)
 
template<>
Buffer UriComponentDecodeBuffer (XString< wchar > const &encodedStr)
 
template<>
Buffer UriComponentDecodeBuffer (XString< char16 > const &encodedStr)
 
template<>
Buffer UriComponentDecodeBuffer (XString< char32 > const &encodedStr)
 
AnsiString UriComponentDecode (AnsiString const &encodedStr)
 
Buffer UriComponentDecodeBuffer (AnsiString const &encodedStr)
 
String UrlEncodeString (String const &str, bool asUtf8=sizeof(String::value_type)==sizeof(wchar))
 URL编码 更多...
 
String UrlDecodeString (String const &encodedStr, bool isUtf8=sizeof(String::value_type)==sizeof(wchar))
 URL解码,与UrlEncodeString()配套 更多...
 
String UriComponentEncodeString (String const &str, bool asUtf8=sizeof(String::value_type)==sizeof(wchar))
 URI组成部分编码,遵循RFC1738. 更多...
 
String UriComponentDecodeString (String const &encodedStr, bool isUtf8=sizeof(String::value_type)==sizeof(wchar))
 URI组成部分解码,与UriComponentEncodeString()配套 更多...
 
String HtmlEncode (String const &str)
 HTML编码。作用字符:'&', '<', '>', ' '. 更多...
 
String HtmlDecode (String const &str)
 HTML解码。与HtmlEncode()配套 更多...
 
template<typename _ChTy >
XString< _ChTy > Base64Encode (void const *buf, size_t size)
 Base64编码 更多...
 
template<>
XString< char > Base64Encode (void const *buf, size_t size)
 Base64编码 更多...
 
template<>
XString< wcharBase64Encode (void const *buf, size_t size)
 Base64编码 更多...
 
template<>
XString< char16Base64Encode (void const *buf, size_t size)
 Base64编码 更多...
 
template<>
XString< char32Base64Encode (void const *buf, size_t size)
 Base64编码 更多...
 
template<typename _ChTy >
XString< _ChTy > Base64Encode (AnsiString const &data)
 Base64编码 更多...
 
template<typename _ChTy >
XString< _ChTy > Base64EncodeBuffer (Buffer const &buf)
 Base64编码 更多...
 
template<typename _ChTy >
AnsiString Base64Decode (XString< _ChTy > const &base64Str)
 Base64解码,与Base64Encode()配套 更多...
 
template<>
AnsiString Base64Decode (XString< char > const &base64Str)
 
template<>
AnsiString Base64Decode (XString< wchar > const &base64Str)
 
template<>
AnsiString Base64Decode (XString< char16 > const &base64Str)
 
template<>
AnsiString Base64Decode (XString< char32 > const &base64Str)
 
template<typename _ChTy >
Buffer Base64DecodeBuffer (XString< _ChTy > const &base64Str)
 Base64解码,与Base64Encode()配套 更多...
 
template<>
Buffer Base64DecodeBuffer (XString< char > const &base64Str)
 
template<>
Buffer Base64DecodeBuffer (XString< wchar > const &base64Str)
 
template<>
Buffer Base64DecodeBuffer (XString< char16 > const &base64Str)
 
template<>
Buffer Base64DecodeBuffer (XString< char32 > const &base64Str)
 
AnsiString Base64Decode (AnsiString const &base64Str)
 Base64解码,与Base64Encode()配套 更多...
 
Buffer Base64DecodeBuffer (AnsiString const &base64Str)
 
template<typename _ChTy >
XString< _ChTy > BufferToHex (Buffer const &buf)
 二进制数据转成16进制串 更多...
 
template<>
XString< char > BufferToHex (Buffer const &buf)
 二进制数据转成16进制串 更多...
 
template<>
XString< wcharBufferToHex (Buffer const &buf)
 二进制数据转成16进制串 更多...
 
template<>
XString< char16BufferToHex (Buffer const &buf)
 二进制数据转成16进制串 更多...
 
template<>
XString< char32BufferToHex (Buffer const &buf)
 二进制数据转成16进制串 更多...
 
template<typename _ChTy >
Buffer HexToBuffer (XString< _ChTy > const &hexStr)
 16进制串转成二进制数据 更多...
 
template<>
Buffer HexToBuffer (XString< char > const &hexStr)
 
template<>
Buffer HexToBuffer (XString< wchar > const &hexStr)
 
template<>
Buffer HexToBuffer (XString< char16 > const &hexStr)
 
template<>
Buffer HexToBuffer (XString< char32 > const &hexStr)
 
Buffer HexToBuffer (AnsiString const &hexStr)
 16进制串转成二进制数据 更多...
 
Buffer Md5 (void const *buf, size_t size)
 将数据进行md5编码,返回二进制数据 更多...
 
Buffer Md5 (Buffer const &buf)
 将数据进行md5编码,返回二进制数据 更多...
 
template<typename _ChTy >
XString< _ChTy > Md5Hex (void const *buf, size_t size)
 将数据进行md5编码,返回16进制数字符串 更多...
 
template<typename _ChTy >
XString< _ChTy > Md5Hex (Buffer const &buf)
 将数据进行md5编码,返回16进制数字符串 更多...
 
Buffer Sha1 (void const *buf, size_t size)
 将数据进行sha1编码,返回二进制数据 更多...
 
Buffer Sha1 (Buffer const &buf)
 将数据进行sha1编码,返回二进制数据 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha1Hex (void const *buf, size_t size)
 将数据进行sha1编码,返回16进制数字符串 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha1Hex (Buffer const &buf)
 将数据进行sha1编码,返回16进制数字符串 更多...
 
Buffer Sha224 (void const *buf, size_t size)
 将数据进行sha224编码,返回二进制数据 更多...
 
Buffer Sha224 (Buffer const &buf)
 将数据进行sha224编码,返回二进制数据 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha224Hex (void const *buf, size_t size)
 将数据进行sha224编码,返回16进制数字符串 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha224Hex (Buffer const &buf)
 将数据进行sha224编码,返回16进制数字符串 更多...
 
Buffer Sha256 (void const *buf, size_t size)
 将数据进行sha256编码,返回二进制数据 更多...
 
Buffer Sha256 (Buffer const &buf)
 将数据进行sha256编码,返回二进制数据 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha256Hex (void const *buf, size_t size)
 将数据进行sha256编码,返回16进制数字符串 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha256Hex (Buffer const &buf)
 将数据进行sha256编码,返回16进制数字符串 更多...
 
Buffer Sha384 (void const *buf, size_t size)
 将数据进行sha384编码,返回二进制数据 更多...
 
Buffer Sha384 (Buffer const &buf)
 将数据进行sha384编码,返回二进制数据 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha384Hex (void const *buf, size_t size)
 将数据进行sha384编码,返回16进制数字符串 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha384Hex (Buffer const &buf)
 将数据进行sha384编码,返回16进制数字符串 更多...
 
Buffer Sha512 (void const *buf, size_t size)
 将数据进行sha512编码,返回二进制数据 更多...
 
Buffer Sha512 (Buffer const &buf)
 将数据进行sha512编码,返回二进制数据 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha512Hex (void const *buf, size_t size)
 将数据进行sha512编码,返回16进制数字符串 更多...
 
template<typename _ChTy >
XString< _ChTy > Sha512Hex (Buffer const &buf)
 将数据进行sha512编码,返回16进制数字符串 更多...
 
int RawEncrypt (byte const *data, size_t dataSize, byte *buf, size_t bufSize, size_t *outSize)
 未进行C++包装的内容加密 更多...
 
int RawDecrypt (byte const *encryptData, size_t dataSize, byte *buf, size_t bufSize, size_t *outSize)
 未进行C++包装的内容解密,与RawEncrypt()配套 更多...
 
AnsiString EncryptContent (AnsiString const &content)
 内容加密 更多...
 
Buffer EncryptContent (Buffer const &content)
 内容加密 更多...
 
AnsiString DecryptContent (AnsiString const &encryptContent)
 内容解密,与EncryptContent()配套 更多...
 
Buffer DecryptContent (Buffer const &encryptContent)
 内容解密,与EncryptContent()配套 更多...
 
String GetExecutablePath (void)
 获取可执行文件的全路径 更多...
 
String FilePath (String const &fullPath, String *fileName=NULL)
 获取文件目录路径(末尾不含目录分隔符) 更多...
 
String FileTitle (String const &fileName, String *extName=NULL)
 获取文件标题 更多...
 
bool IsAbsPath (String const &path)
 判断是否为绝对路径 更多...
 
String NormalizePath (String const &path)
 使路径规则化(末尾不带路径分割符) 更多...
 
String RealPath (String const &path)
 根据当前工作目录计算绝对路径,不会检查存在性 更多...
 
String RealPathEx (String const &path, String const &workDirAbsPath)
 根据指定工作目录计算绝对路径,不会检查存在性 更多...
 
String GetCurrentDir (void)
 返回当前工作目录(末尾不含目录分隔符) 更多...
 
bool SetCurrentDir (String const &path)
 设置当前工作目录 更多...
 
bool IsDir (String const &path)
 判断是否是一个目录 更多...
 
bool DetectPath (String const &path, bool *isDir=NULL)
 探测一个路径是存在还是不存在,是目录还是文件 更多...
 
uint64 FileSize (String const &filename)
 获取文件大小(也适用于大于4GB的文件) 更多...
 
bool FileTime (String const &filename, time_t *ctime, time_t *mtime, time_t *atime)
 获取文件时间 更多...
 
time_t FileCTime (String const &filename)
 获取文件创建时间 更多...
 
time_t FileMTime (String const &filename)
 获取文件修改时间 更多...
 
time_t FileATime (String const &filename)
 获取文件访问时间 更多...
 
bool FileTouch (String const &filename, time_t time=(time_t)-1, time_t atime=(time_t)-1)
 更新文件修改时间,访问时间 更多...
 
String PathWithSep (String const &path)
 路径末尾带分隔符。如果path是空串则不作处理 更多...
 
String PathNoSep (String const &path)
 路径末尾不带分隔符。如果path是空串则不作处理 更多...
 
StringPathWithSep (String *path)
 路径末尾带分隔符。如果*path是空串则不作处理 更多...
 
StringPathNoSep (String *path)
 路径末尾不带分隔符。如果*path是空串则不作处理 更多...
 
String CombinePath (String const &dirPath, String const &fileName)
 把一个目录路径和一个文件名组合成一个新路径 更多...
 
void FolderData (String const &path, StringArray *fileArr, StringArray *subFolderArr, int sortType=0)
 获取文件夹中的文件和子文件夹。sortType:0结果不排序 1正序 2反序 更多...
 
size_t EnumFiles (String const &path, Mixed const &ext, StringArray *arrFiles, bool isRecursive=false)
 在指定路径下枚举指定扩展名的文件 更多...
 
bool UnlinkFile (String const &filePath)
 断开路径与磁盘文件的链接,即删除文件(只能删除文件,不能删除目录) 更多...
 
bool RemoveDir (String const &dirPath)
 删除空目录。如果目录非空则失败 更多...
 
bool RemovePath (String const &path)
 删除文件和空目录。如果路径指向的是一个非空目录则失败 更多...
 
bool RenamePath (String const &oldPath, String const &newPath)
 重命名文件或目录,或者将文件或目录从一个目录移动到另一个目录 更多...
 
size_t CommonDelete (String const &path)
 通用删除。删除文件夹和文件,返回删除的文件夹和文件数 更多...
 
bool MakeDirExists (String const &path, int mode=0755)
 确保目录路径的存在性,如果不存在则创建。 更多...
 
FileEncoding RecognizeFileEncoding (winux::Buffer const &content, size_t *pIndex, size_t limitSize=-1)
 识别文件编码 更多...
 
template<typename _ChTy >
XString< _ChTy > NewlineFromFile (_ChTy const *content, size_t len, bool b)
 从文件中换行到程序环境中。b表示是否反序,配合IsLittleEndian()/IsBigEndian()使用 更多...
 
template<>
XString< char > NewlineFromFile (char const *content, size_t len, bool b)
 
template<>
XString< wcharNewlineFromFile (wchar const *content, size_t len, bool b)
 
template<>
XString< char16NewlineFromFile (char16 const *content, size_t len, bool b)
 
template<>
XString< char32NewlineFromFile (char32 const *content, size_t len, bool b)
 
template<typename _ChTy >
XString< _ChTy > NewlineToFile (_ChTy const *content, size_t len, bool b)
 从程序环境中换行到文件中。b表示是否反序,配合IsLittleEndian()/IsBigEndian()使用 更多...
 
template<>
XString< char > NewlineToFile (char const *content, size_t len, bool b)
 
template<>
XString< wcharNewlineToFile (wchar const *content, size_t len, bool b)
 
template<>
XString< char16NewlineToFile (char16 const *content, size_t len, bool b)
 
template<>
XString< char32NewlineToFile (char32 const *content, size_t len, bool b)
 
String FileGetString (String const &filename, FileEncoding encoding=feMultiByte)
 载入文件内容为文本字符串 更多...
 
AnsiString FileGetContents (String const &filename, bool textMode=true)
 载入文件内容为一个AnsiString,textMode表示是否为文本模式 更多...
 
Buffer FileGetContentsEx (String const &filename, bool textMode)
 载入文件内容为一个Buffer,textMode表示是否为文本模式 更多...
 
bool FilePutString (String const &filename, String const &content, FileEncoding encoding=feMultiByte)
 把字符串内容写入文件 更多...
 
bool FilePutContents (String const &filename, AnsiString const &content, bool textMode=true)
 AnsiString内容写入文件,textMode表示是否为文本模式 更多...
 
bool FilePutContentsEx (String const &filename, Buffer const &content, bool textMode)
 Buffer内容写入文件,textMode表示是否为文本模式 更多...
 
String BackupFile (String const &filePath, String const &bakDir=$T(""), String const &fmt=$T("%f_v%v%E"))
 在给定目录备份指定文件 更多...
 
bool JsonSetByteOrderForUtf16 (bool isLittleEndian)
 设置字节序。此字节序是解析时,存储编码数字的字节序。 更多...
 
String JsonSetConvertToCharsetForUtf16 (String const &charset)
 设置转换到的字符集编码。此表示解析时,转换成什么编码。默认为空串,即本地编码。 更多...
 
bool ParseJson (String const &json, Mixed *val)
 JSON串解析成Mixed. 更多...
 
Mixed Json (String const &json)
 JSON串解析成Mixed. 更多...
 
AnsiString MixedToJsonA (Mixed const &v, bool autoKeyQuotes)
 
UnicodeString MixedToJsonW (Mixed const &v, bool autoKeyQuotes)
 
AnsiString MixedToJson (Mixed const &v, bool autoKeyQuotes)
 Mixed输出成Json. 更多...
 
AnsiString MixedToJsonExA (Mixed const &v, bool autoKeyQuotes, AnsiString const &spacer="", AnsiString const &newline="")
 
UnicodeString MixedToJsonExW (Mixed const &v, bool autoKeyQuotes, UnicodeString const &spacer=L"", UnicodeString const &newline=L"")
 
AnsiString MixedToJsonEx (Mixed const &v, bool autoKeyQuotes, AnsiString const &spacer="", AnsiString const &newline="")
 Mixed输出成Json,支持结构化。 更多...
 
long LongAtomicIncrement (long volatile *p)
 原子化使一个Long型变量+1,返回值是+1后的*p值 更多...
 
long LongAtomicDecrement (long volatile *p)
 原子化使一个Long型变量-1,返回值是-1后的*p值 更多...
 
long LongAtomicCompareExchange (long volatile *p, long exchange, long comparand)
 原子化操作,*p若和comparand相等,就把*p赋成exchange,返回值是初始的*p值 更多...
 
template<typename _Other , typename _Yty >
void _EnableSharedFromThis1 (SharedPointer< _Other > const &sharedThis, _Yty *ptr, std::true_type)
 
template<typename _Other , typename _Yty >
void _EnableSharedFromThis1 (SharedPointer< _Other > const &, _Yty *, std::false_type)
 
template<typename _Other , typename _Yty >
void _EnableSharedFromThis (SharedPointer< _Other > const &sharedThis, _Yty *ptr)
 
template<typename _Ty >
SimplePointer< _Ty > MakeSimple (_Ty *newObj)
 创建一个SimplePointer来管理新对象资源 更多...
 
template<typename _Ty , typename _Dt >
SimplePointer< _Ty > MakeSimple (_Ty *newObj, _Dt dt)
 创建一个SimplePointer来管理新对象资源,自定义可调用删除器 更多...
 
template<typename _Ty >
SharedPointer< _Ty > MakeShared (_Ty *newObj)
 创建一个SharedPointer来管理新对象资源 更多...
 
template<typename _Ty , typename _Dt >
SharedPointer< _Ty > MakeShared (_Ty *newObj, _Dt dt)
 创建一个SharedPointer来管理新对象资源,自定义可调用删除器 更多...
 
template<typename _ChTy >
static XString< _ChTy > CharSeqToString (_ChTy const *str, size_t len=npos)
 C字符串转到XString. 更多...
 
template<typename _RetChTy , typename _ChTy = _RetChTy>
static XString< _RetChTy > CharToHexStr (_ChTy ch, bool padZero=false)
 字符转成16进制串形式 更多...
 
template<typename _ChTy >
size_t StrSplit (XString< _ChTy > const &str, XString< _ChTy > const &delimList, XStringArray< _ChTy > *arr, bool alwaysRetOneElem=false)
 
template<>
size_t StrSplit (XString< char > const &str, XString< char > const &delimList, XStringArray< char > *arr, bool alwaysRetOneElem)
 
template<>
size_t StrSplit (XString< wchar > const &str, XString< wchar > const &delimList, XStringArray< wchar > *arr, bool alwaysRetOneElem)
 
template<>
size_t StrSplit (XString< char16 > const &str, XString< char16 > const &delimList, XStringArray< char16 > *arr, bool alwaysRetOneElem)
 
template<>
size_t StrSplit (XString< char32 > const &str, XString< char32 > const &delimList, XStringArray< char32 > *arr, bool alwaysRetOneElem)
 
size_t StrSplit (AnsiString const &str, AnsiString const &delimList, AnsiStringArray *arr, bool alwaysRetOneElem=false)
 字符串分割 更多...
 
template<typename _ChTy >
XStringArray< _ChTy > StrSplit (XString< _ChTy > const &str, XString< _ChTy > const &delimList, bool alwaysRetOneElem=false)
 
template<>
XStringArray< char > StrSplit (XString< char > const &str, XString< char > const &delimList, bool alwaysRetOneElem)
 
template<>
XStringArray< wcharStrSplit (XString< wchar > const &str, XString< wchar > const &delimList, bool alwaysRetOneElem)
 
template<>
XStringArray< char16StrSplit (XString< char16 > const &str, XString< char16 > const &delimList, bool alwaysRetOneElem)
 
template<>
XStringArray< char32StrSplit (XString< char32 > const &str, XString< char32 > const &delimList, bool alwaysRetOneElem)
 
AnsiStringArray StrSplit (AnsiString const &str, AnsiString const &delimList, bool alwaysRetOneElem=false)
 字符串分割 更多...
 
template<typename _ChTy >
size_t StrSplit2 (XString< _ChTy > const &str, XString< _ChTy > const &delim, XStringArray< _ChTy > *arr, bool alwaysRetOneElem=false)
 
template<>
size_t StrSplit2 (XString< char > const &str, XString< char > const &delim, XStringArray< char > *arr, bool alwaysRetOneElem)
 
template<>
size_t StrSplit2 (XString< wchar > const &str, XString< wchar > const &delim, XStringArray< wchar > *arr, bool alwaysRetOneElem)
 
template<>
size_t StrSplit2 (XString< char16 > const &str, XString< char16 > const &delim, XStringArray< char16 > *arr, bool alwaysRetOneElem)
 
template<>
size_t StrSplit2 (XString< char32 > const &str, XString< char32 > const &delim, XStringArray< char32 > *arr, bool alwaysRetOneElem)
 
size_t StrSplit2 (AnsiString const &str, AnsiString const &delim, AnsiStringArray *arr, bool alwaysRetOneElem=false)
 字符串分割2 更多...
 
template<typename _ChTy >
XStringArray< _ChTy > StrSplit2 (XString< _ChTy > const &str, XString< _ChTy > const &delim, bool alwaysRetOneElem=false)
 
template<>
XStringArray< char > StrSplit2 (XString< char > const &str, XString< char > const &delim, bool alwaysRetOneElem)
 
template<>
XStringArray< wcharStrSplit2 (XString< wchar > const &str, XString< wchar > const &delim, bool alwaysRetOneElem)
 
template<>
XStringArray< char16StrSplit2 (XString< char16 > const &str, XString< char16 > const &delim, bool alwaysRetOneElem)
 
template<>
XStringArray< char32StrSplit2 (XString< char32 > const &str, XString< char32 > const &delim, bool alwaysRetOneElem)
 
AnsiStringArray StrSplit2 (AnsiString const &str, AnsiString const &delim, bool alwaysRetOneElem=false)
 字符串分割2 更多...
 
template<typename _ChTy >
XString< _ChTy > StrJoin (XString< _ChTy > const &delim, XStringArray< _ChTy > const &arr)
 
template<>
XString< char > StrJoin (XString< char > const &delim, XStringArray< char > const &arr)
 
template<>
XString< wcharStrJoin (XString< wchar > const &delim, XStringArray< wchar > const &arr)
 
template<>
XString< char16StrJoin (XString< char16 > const &delim, XStringArray< char16 > const &arr)
 
template<>
XString< char32StrJoin (XString< char32 > const &delim, XStringArray< char32 > const &arr)
 
AnsiString StrJoin (AnsiString const &delim, AnsiStringArray const &arr)
 字符串组合连接 更多...
 
template<typename _ChTy >
XString< _ChTy > StrJoinEx (XString< _ChTy > const &delim, XStringArray< _ChTy > const &arr, size_t start=0, size_t elemCount=-1)
 
template<>
XString< char > StrJoinEx (XString< char > const &delim, XStringArray< char > const &arr, size_t start, size_t elemCount)
 
template<>
XString< wcharStrJoinEx (XString< wchar > const &delim, XStringArray< wchar > const &arr, size_t start, size_t elemCount)
 
template<>
XString< char16StrJoinEx (XString< char16 > const &delim, XStringArray< char16 > const &arr, size_t start, size_t elemCount)
 
template<>
XString< char32StrJoinEx (XString< char32 > const &delim, XStringArray< char32 > const &arr, size_t start, size_t elemCount)
 
AnsiString StrJoinEx (AnsiString const &delim, AnsiStringArray const &arr, size_t start=0, size_t elemCount=-1)
 字符串组合连接。start表示开始位置,elemCount表示自开始位置的元素数,默认-1表示自开始位置的全部元素 更多...
 
template<typename _ChTy >
XString< _ChTy > StrInsert (XString< _ChTy > const &str, size_t start, size_t end, XString< _ChTy > const &insert)
 
template<>
XString< char > StrInsert (XString< char > const &str, size_t start, size_t end, XString< char > const &insert)
 
template<>
XString< wcharStrInsert (XString< wchar > const &str, size_t start, size_t end, XString< wchar > const &insert)
 
template<>
XString< char16StrInsert (XString< char16 > const &str, size_t start, size_t end, XString< char16 > const &insert)
 
template<>
XString< char32StrInsert (XString< char32 > const &str, size_t start, size_t end, XString< char32 > const &insert)
 
AnsiString StrInsert (AnsiString const &str, size_t start, size_t end, AnsiString const &insert)
 在指定位置插入字符串 更多...
 
template<typename _ChTy >
XString< _ChTy > & StrMakeReplace (XString< _ChTy > *str, XString< _ChTy > const &findText, XString< _ChTy > const &replaceText, size_t offset=0)
 
template<>
XString< char > & StrMakeReplace (XString< char > *str, XString< char > const &findText, XString< char > const &replaceText, size_t offset)
 
template<>
XString< wchar > & StrMakeReplace (XString< wchar > *str, XString< wchar > const &findText, XString< wchar > const &replaceText, size_t offset)
 
template<>
XString< char16 > & StrMakeReplace (XString< char16 > *str, XString< char16 > const &findText, XString< char16 > const &replaceText, size_t offset)
 
template<>
XString< char32 > & StrMakeReplace (XString< char32 > *str, XString< char32 > const &findText, XString< char32 > const &replaceText, size_t offset)
 
AnsiStringStrMakeReplace (AnsiString *str, AnsiString const &findText, AnsiString const &replaceText, size_t offset=0)
 使字符串全文替换 更多...
 
template<typename _ChTy >
XString< _ChTy > StrTrim (XString< _ChTy > const &str, size_t *leftSpaceCount=nullptr, size_t *rightSpaceCount=nullptr)
 
template<>
XString< char > StrTrim (XString< char > const &str, size_t *leftSpaceCount, size_t *rightSpaceCount)
 
template<>
XString< wcharStrTrim (XString< wchar > const &str, size_t *leftSpaceCount, size_t *rightSpaceCount)
 
template<>
XString< char16StrTrim (XString< char16 > const &str, size_t *leftSpaceCount, size_t *rightSpaceCount)
 
template<>
XString< char32StrTrim (XString< char32 > const &str, size_t *leftSpaceCount, size_t *rightSpaceCount)
 
template<typename _ChTy >
XString< _ChTy > StrLTrim (XString< _ChTy > const &str, size_t *leftSpaceCount=nullptr)
 
template<>
XString< char > StrLTrim (XString< char > const &str, size_t *leftSpaceCount)
 
template<>
XString< wcharStrLTrim (XString< wchar > const &str, size_t *leftSpaceCount)
 
template<>
XString< char16StrLTrim (XString< char16 > const &str, size_t *leftSpaceCount)
 
template<>
XString< char32StrLTrim (XString< char32 > const &str, size_t *leftSpaceCount)
 
template<typename _ChTy >
XString< _ChTy > StrRTrim (XString< _ChTy > const &str, size_t *rightSpaceCount=nullptr)
 
template<>
XString< char > StrRTrim (XString< char > const &str, size_t *rightSpaceCount)
 
template<>
XString< wcharStrRTrim (XString< wchar > const &str, size_t *rightSpaceCount)
 
template<>
XString< char16StrRTrim (XString< char16 > const &str, size_t *rightSpaceCount)
 
template<>
XString< char32StrRTrim (XString< char32 > const &str, size_t *rightSpaceCount)
 
AnsiString StrTrim (AnsiString const &str, size_t *leftSpaceCount=nullptr, size_t *rightSpaceCount=nullptr)
 祛除字符串首尾出现的空白字符 更多...
 
AnsiString StrLTrim (AnsiString const &str, size_t *leftSpaceCount=nullptr)
 
AnsiString StrRTrim (AnsiString const &str, size_t *rightSpaceCount=nullptr)
 
template<typename _ChTy >
XString< _ChTy > & StrMakeUpper (XString< _ChTy > *str)
 
template<>
XString< char > & StrMakeUpper (XString< char > *str)
 
template<>
XString< wchar > & StrMakeUpper (XString< wchar > *str)
 
template<>
XString< char16 > & StrMakeUpper (XString< char16 > *str)
 
template<>
XString< char32 > & StrMakeUpper (XString< char32 > *str)
 
AnsiStringStrMakeUpper (AnsiString *str)
 使字符串大写 更多...
 
template<typename _ChTy >
XString< _ChTy > StrUpper (XString< _ChTy > str)
 
template<>
XString< char > StrUpper (XString< char > str)
 
template<>
XString< wcharStrUpper (XString< wchar > str)
 
template<>
XString< char16StrUpper (XString< char16 > str)
 
template<>
XString< char32StrUpper (XString< char32 > str)
 
AnsiString StrUpper (AnsiString str)
 使字符串大写 更多...
 
template<typename _ChTy >
XString< _ChTy > & StrMakeLower (XString< _ChTy > *str)
 
template<>
XString< char > & StrMakeLower (XString< char > *str)
 
template<>
XString< wchar > & StrMakeLower (XString< wchar > *str)
 
template<>
XString< char16 > & StrMakeLower (XString< char16 > *str)
 
template<>
XString< char32 > & StrMakeLower (XString< char32 > *str)
 
AnsiStringStrMakeLower (AnsiString *str)
 使字符串小写 更多...
 
template<typename _ChTy >
XString< _ChTy > StrLower (XString< _ChTy > str)
 
template<>
XString< char > StrLower (XString< char > str)
 
template<>
XString< wcharStrLower (XString< wchar > str)
 
template<>
XString< char16StrLower (XString< char16 > str)
 
template<>
XString< char32StrLower (XString< char32 > str)
 
AnsiString StrLower (AnsiString str)
 使字符串小写 更多...
 
template<typename _ChTy >
XString< _ChTy > StrMultiple (XString< _ChTy > const &str, size_t multiple)
 
template<>
XString< char > StrMultiple (XString< char > const &str, size_t multiple)
 
template<>
XString< wcharStrMultiple (XString< wchar > const &str, size_t multiple)
 
template<>
XString< char16StrMultiple (XString< char16 > const &str, size_t multiple)
 
template<>
XString< char32StrMultiple (XString< char32 > const &str, size_t multiple)
 
AnsiString StrMultiple (AnsiString const &str, size_t multiple)
 字符串倍数的出现 更多...
 
template<typename _ChTy >
XString< _ChTy > StrSubtract (XString< _ChTy > str1, XString< _ChTy > const &str2)
 
template<>
XString< char > StrSubtract (XString< char > str1, XString< char > const &str2)
 
template<>
XString< wcharStrSubtract (XString< wchar > str1, XString< wchar > const &str2)
 
template<>
XString< char16StrSubtract (XString< char16 > str1, XString< char16 > const &str2)
 
template<>
XString< char32StrSubtract (XString< char32 > str1, XString< char32 > const &str2)
 
AnsiString StrSubtract (AnsiString str1, AnsiString const &str2)
 字符串相减,str1 - str2,即去掉str1里与str2相同的部分。限制:str1 >= str2。 更多...
 
template<typename _ChTy >
uint64 StrToXq (_ChTy const *nptr, _ChTy const **endptr, int ibase, int flags)
 
template<>
uint64 StrToXq (char const *nptr, char const **endptr, int ibase, int flags)
 字符串转换成64位的数字 更多...
 
template<>
uint64 StrToXq (wchar const *nptr, wchar const **endptr, int ibase, int flags)
 
template<>
uint64 StrToXq (char16 const *nptr, char16 const **endptr, int ibase, int flags)
 
template<>
uint64 StrToXq (char32 const *nptr, char32 const **endptr, int ibase, int flags)
 
template<typename _ChTy >
int64 StrToInt64 (XString< _ChTy > const &numStr, int ibase)
 
template<>
int64 StrToInt64 (XString< char > const &numStr, int ibase)
 
template<>
int64 StrToInt64 (XString< wchar > const &numStr, int ibase)
 
template<>
int64 StrToInt64 (XString< char16 > const &numStr, int ibase)
 
template<>
int64 StrToInt64 (XString< char32 > const &numStr, int ibase)
 
int64 StrToInt64 (AnsiString const &numStr, int ibase)
 
template<typename _ChTy >
uint64 StrToUInt64 (XString< _ChTy > const &numStr, int ibase)
 
template<>
uint64 StrToUInt64 (XString< char > const &numStr, int ibase)
 
template<>
uint64 StrToUInt64 (XString< wchar > const &numStr, int ibase)
 
template<>
uint64 StrToUInt64 (XString< char16 > const &numStr, int ibase)
 
template<>
uint64 StrToUInt64 (XString< char32 > const &numStr, int ibase)
 
uint64 StrToUInt64 (AnsiString const &numStr, int ibase)
 
template<typename _ChTy >
XString< _ChTy > AddSlashes (XString< _ChTy > const &str, XString< _ChTy > const &charlist)
 
template<>
XString< char > AddSlashes (XString< char > const &str, XString< char > const &charlist)
 
template<>
XString< wcharAddSlashes (XString< wchar > const &str, XString< wchar > const &charlist)
 
template<>
XString< char16AddSlashes (XString< char16 > const &str, XString< char16 > const &charlist)
 
template<>
XString< char32AddSlashes (XString< char32 > const &str, XString< char32 > const &charlist)
 
AnsiString AddSlashes (AnsiString const &str, AnsiString const &charlist)
 加反斜杠 更多...
 
template<typename _ChTy >
XString< _ChTy > AddCSlashes (XString< _ChTy > const &str)
 
AnsiString AddCSlashes (AnsiString const &str)
 加C-Style反斜杠 更多...
 
template<typename _ChTy >
XString< _ChTy > StripSlashes (XString< _ChTy > const &str, XString< _ChTy > const &charlist)
 
template<>
XString< char > StripSlashes (XString< char > const &str, XString< char > const &charlist)
 
template<>
XString< wcharStripSlashes (XString< wchar > const &str, XString< wchar > const &charlist)
 
template<>
XString< char16StripSlashes (XString< char16 > const &str, XString< char16 > const &charlist)
 
template<>
XString< char32StripSlashes (XString< char32 > const &str, XString< char32 > const &charlist)
 
AnsiString StripSlashes (AnsiString const &str, AnsiString const &charlist)
 去掉反斜杠 更多...
 
template<typename _ChTy >
XString< _ChTy > StripCSlashes (XString< _ChTy > const &str)
 
AnsiString StripCSlashes (AnsiString const &str)
 去掉C-Style反斜杠 更多...
 
template<typename _ChTy >
XString< _ChTy > AddQuotes (XString< _ChTy > const &str, _ChTy quote=Literal< _ChTy >::quoteChar)
 
template<>
XString< char > AddQuotes (XString< char > const &str, char quote)
 
template<>
XString< wcharAddQuotes (XString< wchar > const &str, wchar quote)
 
template<>
XString< char16AddQuotes (XString< char16 > const &str, char16 quote)
 
template<>
XString< char32AddQuotes (XString< char32 > const &str, char32 quote)
 
AnsiString AddQuotes (AnsiString const &str, AnsiString::value_type quote=Literal< AnsiString::value_type >::quoteChar)
 double引号 更多...
 
template<typename _ChTy >
bool StrGetLine (XString< _ChTy > *line, XString< _ChTy > const &str, size_t *i, XString< _ChTy > *nl=nullptr)
 
template<>
bool StrGetLine (XString< char > *line, XString< char > const &str, size_t *i, XString< char > *nl)
 
template<>
bool StrGetLine (XString< wchar > *line, XString< wchar > const &str, size_t *i, XString< wchar > *nl)
 
template<>
bool StrGetLine (XString< char16 > *line, XString< char16 > const &str, size_t *i, XString< char16 > *nl)
 
template<>
bool StrGetLine (XString< char32 > *line, XString< char32 > const &str, size_t *i, XString< char32 > *nl)
 
bool StrGetLine (AnsiString *line, AnsiString const &str, size_t *i, AnsiString *nl=nullptr)
 获取字符串中的一行。支持unix,windows,mac平台的行分隔方式
更多...
 
template<typename _ChTy >
bool StrGetLine (XString< _ChTy > *line, _ChTy const *str, size_t len, size_t *i, XString< _ChTy > *nl=nullptr)
 
template<>
bool StrGetLine (XString< char > *line, char const *str, size_t len, size_t *i, XString< char > *nl)
 
template<>
bool StrGetLine (XString< wchar > *line, wchar const *str, size_t len, size_t *i, XString< wchar > *nl)
 
template<>
bool StrGetLine (XString< char16 > *line, char16 const *str, size_t len, size_t *i, XString< char16 > *nl)
 
template<>
bool StrGetLine (XString< char32 > *line, char32 const *str, size_t len, size_t *i, XString< char32 > *nl)
 
bool StrGetLine (AnsiString *line, AnsiString::value_type const *str, size_t len, size_t *i, AnsiString *nl=nullptr)
 获取字符串中的一行。支持unix,windows,mac平台的行分隔方式
更多...
 
template<typename _ChTy >
void GetLineByPos (XString< _ChTy > const &content, ssize_t pos, ssize_t *lineHead, ssize_t *lineTail, XString< _ChTy > *line=nullptr)
 获取指定位置的行内容 更多...
 
template<>
void GetLineByPos (XString< char > const &content, ssize_t pos, ssize_t *lineHead, ssize_t *lineTail, XString< char > *line)
 
template<>
void GetLineByPos (XString< wchar > const &content, ssize_t pos, ssize_t *lineHead, ssize_t *lineTail, XString< wchar > *line)
 
template<>
void GetLineByPos (XString< char16 > const &content, ssize_t pos, ssize_t *lineHead, ssize_t *lineTail, XString< char16 > *line)
 
template<>
void GetLineByPos (XString< char32 > const &content, ssize_t pos, ssize_t *lineHead, ssize_t *lineTail, XString< char32 > *line)
 
template<typename _ChTy >
XString< _ChTy > CollateIdentifierToString (XString< _ChTy > const &identifier, XString< _ChTy > const &sep, winux::uint flags=wordFirstCharUpper)
 
template<>
XString< char > CollateIdentifierToString (XString< char > const &identifier, XString< char > const &sep, winux::uint flags)
 
template<>
XString< wcharCollateIdentifierToString (XString< wchar > const &identifier, XString< wchar > const &sep, winux::uint flags)
 
template<>
XString< char16CollateIdentifierToString (XString< char16 > const &identifier, XString< char16 > const &sep, winux::uint flags)
 
template<>
XString< char32CollateIdentifierToString (XString< char32 > const &identifier, XString< char32 > const &sep, winux::uint flags)
 
AnsiString CollateIdentifierToString (AnsiString const &identifier, AnsiString const &sep, winux::uint flags=wordFirstCharUpper)
 整理标识符为字符串 更多...
 
template<typename _ChTy >
XStringArray< _ChTy > CollateIdentifierToArray (XString< _ChTy > const &identifier, winux::uint flags=wordFirstCharUpper)
 
template<>
XStringArray< char > CollateIdentifierToArray (XString< char > const &identifier, winux::uint flags)
 
template<>
XStringArray< wcharCollateIdentifierToArray (XString< wchar > const &identifier, winux::uint flags)
 
template<>
XStringArray< char16CollateIdentifierToArray (XString< char16 > const &identifier, winux::uint flags)
 
template<>
XStringArray< char32CollateIdentifierToArray (XString< char32 > const &identifier, winux::uint flags)
 
AnsiStringArray CollateIdentifierToArray (AnsiString const &identifier, winux::uint flags=wordFirstCharUpper)
 整理标识符为单词数组 更多...
 
template<typename _IndexType , typename _ChTy >
static std::vector< _IndexType > _Templ_KmpCalcNext (_ChTy const *substr, size_t sublen)
 KMP匹配算法:求子串next值 更多...
 
template<typename _IndexType , typename _ChTy >
static size_t _Templ_KmpMatchEx (_ChTy const *str, size_t len, _ChTy const *substr, size_t sublen, size_t pos, std::vector< _IndexType > const &next)
 KMP匹配算法:传入已经求好的next进行匹配 更多...
 
template<typename _IndexType , typename _ChTy >
static size_t _Templ_KmpMatch (_ChTy const *str, size_t len, _ChTy const *substr, size_t sublen, size_t pos)
 KMP匹配算法:匹配 更多...
 
template<typename _ChTy >
std::vector< int > KmpCalcNext (_ChTy const *substr, size_t sublen)
 KMP字符串匹配算法:求子串next值 更多...
 
template<typename _ChTy >
size_t KmpMatchEx (_ChTy const *str, size_t len, _ChTy const *substr, size_t sublen, size_t pos, std::vector< int > const &next)
 KMP字符串匹配算法:传入已经求好的next进行匹配 更多...
 
template<typename _ChTy >
size_t KmpMatch (_ChTy const *str, size_t len, _ChTy const *substr, size_t sublen, size_t pos)
 KMP字符串匹配算法:匹配 更多...
 
size_t LocalCharsCount (AnsiString const &local)
 返回一个本地字符串里有多少个实际的字符(by local CodePage),用于mbstowcs 更多...
 
size_t UnicodeMinLength (UnicodeString const &unicode)
 返回一个unicode字符串转换为多字节字符串最少需要多少字节(by local CodePage),用于wcstombs 更多...
 
AnsiString UnicodeToLocal (UnicodeString const &unicode)
 Unicode转换到本地Ansi. 更多...
 
UnicodeString LocalToUnicode (AnsiString const &local)
 本地Ansi转到Unicode 更多...
 
String LocalToString (AnsiString const &local)
 兼容字符串与Unicode、Local字符串相互转换 更多...
 
String UnicodeToString (UnicodeString const &unicode)
 兼容字符串与Unicode、Local字符串相互转换 更多...
 
AnsiString StringToLocal (String const &str)
 兼容字符串与Unicode、Local字符串相互转换 更多...
 
UnicodeString StringToUnicode (String const &str)
 兼容字符串与Unicode、Local字符串相互转换 更多...
 
AnsiString FormatExVA (size_t cch, char const *fmt, va_list args)
 
UnicodeString FormatExVW (size_t cch, wchar const *fmt, va_list args)
 
AnsiString FormatExA (size_t cch, char const *fmt,...)
 
UnicodeString FormatExW (size_t cch, wchar const *fmt,...)
 
AnsiString FormatA (char const *fmt,...)
 
UnicodeString FormatW (wchar const *fmt,...)
 
AnsiString FormatExV (size_t cch, char const *fmt, va_list args)
 格式化字符串0 更多...
 
AnsiString FormatEx (size_t cch, char const *fmt,...)
 格式化字符串1 更多...
 
AnsiString Format (char const *fmt,...)
 格式化字符串2 更多...
 
template<typename _CHAR , uint _Count>
SZInput SZ (_CHAR(&sz)[_Count])
 VC2010以上支持模板取数组大小 更多...
 
static AnsiString LocalFromUtf8 (AnsiString const &str)
 从utf-8转到本地编码 更多...
 
static AnsiString LocalToUtf8 (AnsiString const &str)
 从本地编码转到utf-8 更多...
 
uint GetPid (void)
 获取当前进程ID 更多...
 
uint GetTid (void)
 获取当前线程ID 更多...
 
size_t CommandLineToArgvA (AnsiString const &cmd, AnsiStringArray *argv)
 
size_t CommandLineToArgvW (UnicodeString const &cmd, UnicodeStringArray *argv)
 
size_t CommandLineToArgv (AnsiString const &cmd, AnsiStringArray *argv)
 把命令行解析成Argv数组。不支持命令行& && | || 更多...
 
HProcess ExecCommandEx (String const &cmd, HPipe *hStdinWritePipe, HPipe *hStdoutReadPipe, HPipe *hStderrReadPipe=NULL, bool closeStdinIfStdinWritePipeIsNull=true)
 新建子进程执行指定命令,并用管道重定向了标准设备 更多...
 
int ExecCommand (String const &cmd, String const &stdinStr, String *stdoutStr, String *stderrStr=NULL, bool closeStdinIfStdinStrEmpty=true)
 新建子进程执行指定命令,等待子进程结束,并把字符串重定向了标准设备 更多...
 
String GetExec (String const &cmd, String const &stdinStr=$T(""), String *stderrStr=NULL, bool closeStdinIfStdinStrEmpty=true)
 执行命令,返回标准输出内容 更多...
 
static ulong GetSecondsFromWeeks (int weeks)
 获取几周是多少秒 更多...
 
static ulong GetSecondsFromDays (int days)
 获取几天是多少秒 更多...
 
static ulong GetSecondsFromHours (int hours)
 获取几小时是多少秒 更多...
 
static ulong GetSecondsFromMinutes (int minutes)
 获取几分钟是多少秒 更多...
 
std::ostream & operator<< (std::ostream &o, DateTimeL const &dt)
 
std::wostream & operator<< (std::wostream &o, DateTimeL const &dt)
 
uint64 GetUtcTimeMs (void)
 获取UTC时间毫秒数,UTC秒数可以直接除以1000,或者调用CRT的time(NULL) 更多...
 
uint64 GetUtcTimeUs (void)
 获取UTC时间微秒数,UTC秒数可以直接除以1000000,或者调用CRT的time(NULL) 更多...
 
time_t GetUtcTime (void)
 获取UTC时间秒数,或者调用CRT的time(NULL) 更多...
 
template<typename _Ty >
RefParam< _Ty > Ref (_Ty &r)
 向模板参数传递引用型参数 更多...
 
template<typename _Fx , typename... _ArgType>
RunableT< _Fx, std::tuple< typename std::decay< _ArgType >::type... > > * NewRunable (_Fx fn, _ArgType &&...arg)
 创建一个Runable对象 更多...
 
template<typename _Fx , typename... _ArgType>
Invoker< _Fx > * NewInvoker (_Fx fn, _ArgType &&...arg)
 
template<typename _KTy , typename _VTy , typename _Pr , typename _Alloc >
MapAssigner< _KTy, _VTy, _Pr, _Alloc > Assign (std::map< _KTy, _VTy, _Pr, _Alloc > *m)
 给容器赋值 更多...
 
template<typename _Ty , typename _Alloc >
ArrayAssigner< _Ty, _Alloc > Assign (std::vector< _Ty, _Alloc > *a)
 给容器赋值 更多...
 
template<typename _ChTy , typename = CharTypeConstrain<_ChTy>>
static size_t StrLen (_ChTy const *str)
 计算字符串长度 更多...
 
template<typename _Ty >
static _Ty InvertByteOrder (_Ty v)
 反转字节序。_Ty必须是基本数字类型 更多...
 
template<typename _Ty >
static void InvertByteOrderArray (_Ty *p, size_t count)
 反转字节序。_Ty必须是基本数字类型 更多...
 
void InvertByteOrder (void *buf, size_t size)
 反转字节序 更多...
 
static bool IsLittleEndian ()
 判断编译环境是否为小端序 更多...
 
static bool IsBigEndian ()
 判断编译环境是否为大端序 更多...
 
int MemoryCompare (void const *buf1, size_t n1, void const *buf2, size_t n2)
 内存比较 更多...
 
int MemoryCompareI (void const *buf1, size_t n1, void const *buf2, size_t n2)
 内存比较(不区分大小写) 更多...
 
template<typename _ChTy >
static int StringCompare (XString< _ChTy > const &str1, XString< _ChTy > const &str2)
 字符串比较 更多...
 
template<typename _ChTy >
static int StringCompareI (XString< _ChTy > const &str1, XString< _ChTy > const &str2)
 字符串(大小写无关)比较 更多...
 
template<typename _Ty >
static bool ArrayLess (_Ty const *arr1, size_t count1, _Ty const *arr2, size_t count2)
 array less 更多...
 
template<typename _Ty >
static bool ArrayGreater (_Ty const *arr1, size_t count1, _Ty const *arr2, size_t count2)
 array greater 更多...
 
template<typename _Ty >
static bool ArrayEqual (_Ty const *arr1, size_t count1, _Ty const *arr2, size_t count2)
 array equal 更多...
 
template<typename _Ty >
static bool ArrayLess (std::vector< _Ty > const &arr1, std::vector< _Ty > const &arr2)
 array less 更多...
 
template<typename _Ty >
static bool ArrayGreater (std::vector< _Ty > const &arr1, std::vector< _Ty > const &arr2)
 array less 更多...
 
template<typename _Ty >
static bool ArrayEqual (std::vector< _Ty > const &arr1, std::vector< _Ty > const &arr2)
 array equal 更多...
 
bool CollectionLess (Collection const &coll1, Collection const &coll2)
 collection less 更多...
 
bool CollectionGreater (Collection const &coll1, Collection const &coll2)
 collection greater 更多...
 
bool CollectionEqual (Collection const &coll1, Collection const &coll2)
 collection equal 更多...
 
template<typename _MAP , typename _KEY >
bool isset (_MAP const &m, _KEY const &k)
 检测map中是否有该键的值 更多...
 
template<typename _Ty >
std::vector< _Ty > ToArray (_Ty *arr, uint count)
 将C数组转换成vector 更多...
 
template<typename _Ty , uint _Count>
std::vector< _Ty > ToArray (_Ty(&arr)[_Count])
 
template<typename _Fx , typename... _ArgType>
int VoidReturnInt (_Fx fn, _ArgType &&...arg)
 调用一个返回void的函数或函数对象,返回一个数字 更多...
 
bool ValueIsInArray (StringArray const &arr, String const &val, bool caseInsensitive=false)
 判断一个字符串值是否在一个字符串数组里,默认大小写敏感 更多...
 
int Random (int n1, int n2)
 随机数,随机产生n1~n2的数字. 包括n1,n2本身 更多...
 
bool ParseBool (AnsiString const &str, bool *boolVal)
 parse bool 更多...
 
bool ParseBool (UnicodeString const &str, bool *boolVal)
 parse bool 更多...
 
bool ParseInt (AnsiString const &str, int *iVal)
 parse int 更多...
 
bool ParseInt (UnicodeString const &str, int *iVal)
 parse int 更多...
 
bool ParseUInt (AnsiString const &str, uint *uiVal)
 parse uint 更多...
 
bool ParseUInt (UnicodeString const &str, uint *uiVal)
 parse uint 更多...
 
bool ParseLong (AnsiString const &str, long *lVal)
 parse long 更多...
 
bool ParseLong (UnicodeString const &str, long *lVal)
 parse long 更多...
 
bool ParseULong (AnsiString const &str, ulong *ulVal)
 parse ulong 更多...
 
bool ParseULong (UnicodeString const &str, ulong *ulVal)
 parse ulong 更多...
 
bool ParseInt64 (AnsiString const &str, int64 *i64Val)
 parse int64 更多...
 
bool ParseInt64 (UnicodeString const &str, int64 *i64Val)
 parse int64 更多...
 
bool ParseUInt64 (AnsiString const &str, uint64 *ui64Val)
 parse uint64 更多...
 
bool ParseUInt64 (UnicodeString const &str, uint64 *ui64Val)
 parse uint64 更多...
 
bool ParseFloat (AnsiString const &str, float *fltVal)
 parse float 更多...
 
bool ParseFloat (UnicodeString const &str, float *fltVal)
 parse float 更多...
 
bool ParseDouble (AnsiString const &str, double *dblVal)
 parse double 更多...
 
bool ParseDouble (UnicodeString const &str, double *dblVal)
 parse double 更多...
 
static int BufferCompare (Buffer const &buf1, Buffer const &buf2)
 memcmp() 更多...
 
static int BufferCompareI (Buffer const &buf1, Buffer const &buf2)
 memicmp() 更多...
 
AnsiString const & TypeStringA (Mixed const &v)
 输出Mixed类型的字符串表示 更多...
 
UnicodeString const & TypeStringW (Mixed const &v)
 输出Mixed类型的字符串表示 更多...
 
std::ostream & operator<< (std::ostream &o, Mixed const &m)
 扩展iostream的<< 更多...
 
std::wostream & operator<< (std::wostream &o, Mixed const &m)
 

变量

String const DirSep_WIN = $T("\\")
 Windows目录分割符 更多...
 
String const LineSep_WIN = $T("\r\n")
 Windows行分割符 更多...
 
String const PathEnvSep_WIN = $T(";")
 Windows PATH环境变量路径分割符 更多...
 
String const DirSep_UNIX = $T("/")
 Unix目录分割符 更多...
 
String const LineSep_UNIX = $T("\n")
 Unix行分割符 更多...
 
String const PathEnvSep_UNIX = $T(":")
 Unix PATH环境变量路径分割符 更多...
 
String const DirSep_DARWIN = $T("/")
 Apple系统目录分割符 更多...
 
String const LineSep_DARWIN = $T("\r")
 Apple系统行分割符 更多...
 
String const PathEnvSep_DARWIN = $T(":")
 Apple系统PATH环境变量路径分割符 更多...
 
String const DirSep = $T("/")
 目录分割符 更多...
 
String const LineSep = $T("\n")
 行分割符 更多...
 
String const PathEnvSep = $T(":")
 PATH环境变量路径分割符 更多...
 
static constexpr size_t const npos = static_cast<size_t>(-1)
 非位置,值为-1。 更多...
 
Mixed const mxNull
 Mixed(MT_NULL)常量对象 更多...
 

详细描述

跨平台基础功能库

类型定义说明

在文件 compress.hpp10 行定义.

template<typename... _Ty>
using winux::VoidT = typedef typename MakeVoid<_Ty...>::type

在文件 smartptr.hpp462 行定义.

在文件 strings.hpp781 行定义.

using winux::AnsiStringWriter = typedef XStringWriter<char>

在文件 strings.hpp782 行定义.

在文件 strings.hpp783 行定义.

在文件 strings.hpp784 行定义.

在文件 strings.hpp785 行定义.

在文件 strings.hpp786 行定义.

在文件 strings.hpp787 行定义.

using winux::UC = typedef UnicodeConverter

UnicodeConverter简单别名

在文件 strings.hpp1136 行定义.

typedef int winux::HPipe

在文件 system.hpp25 行定义.

在文件 system.hpp26 行定义.

typedef int winux::pid_t

在文件 threads.hpp13 行定义.

typedef int winux::int32

在文件 utilities.hpp214 行定义.

typedef unsigned int winux::uint

在文件 utilities.hpp215 行定义.

typedef unsigned int winux::uint32

在文件 utilities.hpp215 行定义.

typedef unsigned long winux::ulong

在文件 utilities.hpp216 行定义.

typedef short winux::int16

在文件 utilities.hpp217 行定义.

typedef unsigned short winux::ushort

在文件 utilities.hpp218 行定义.

typedef unsigned short winux::uint16

在文件 utilities.hpp218 行定义.

typedef char winux::int8

在文件 utilities.hpp219 行定义.

typedef unsigned char winux::uint8

在文件 utilities.hpp220 行定义.

typedef char16_t winux::char16

在文件 utilities.hpp222 行定义.

typedef char32_t winux::char32

在文件 utilities.hpp223 行定义.

typedef intptr_t winux::offset_t

在文件 utilities.hpp225 行定义.

typedef intptr_t winux::ssize_t

在文件 utilities.hpp225 行定义.

typedef size_t winux::usize_t

在文件 utilities.hpp226 行定义.

typedef wchar_t winux::wchar

在文件 utilities.hpp229 行定义.

typedef unsigned __int64 winux::uint64

在文件 utilities.hpp230 行定义.

typedef unsigned __int64 winux::ulonglong

在文件 utilities.hpp231 行定义.

typedef __int64 winux::int64

在文件 utilities.hpp232 行定义.

typedef __int64 winux::longlong

在文件 utilities.hpp233 行定义.

typedef char winux::tchar

在文件 utilities.hpp245 行定义.

typedef unsigned char winux::byte

在文件 utilities.hpp249 行定义.

template<typename _ChTy >
using winux::XString = typedef std::basic_string< _ChTy, std::char_traits<_ChTy>, std::allocator<_ChTy> >

在文件 utilities.hpp255 行定义.

typedef XString<char> winux::AnsiString

在文件 utilities.hpp257 行定义.

typedef XString<char> winux::Utf8String

在文件 utilities.hpp257 行定义.

在文件 utilities.hpp258 行定义.

在文件 utilities.hpp259 行定义.

在文件 utilities.hpp259 行定义.

在文件 utilities.hpp260 行定义.

在文件 utilities.hpp260 行定义.

在文件 utilities.hpp261 行定义.

template<typename _ChTy >
using winux::XStringArray = typedef std::vector< XString<_ChTy> >

在文件 utilities.hpp264 行定义.

在文件 utilities.hpp266 行定义.

在文件 utilities.hpp266 行定义.

在文件 utilities.hpp267 行定义.

在文件 utilities.hpp270 行定义.

在文件 utilities.hpp271 行定义.

在文件 utilities.hpp272 行定义.

typedef std::map<String, String> winux::StringStringMap

在文件 utilities.hpp274 行定义.

typedef std::pair<String, String> winux::StringStringPair

在文件 utilities.hpp275 行定义.

typedef std::vector<Mixed> winux::MixedArray

在文件 utilities.hpp277 行定义.

typedef std::map<String, Mixed> winux::StringMixedMap

在文件 utilities.hpp278 行定义.

typedef std::pair<String, Mixed> winux::StringMixedPair

在文件 utilities.hpp279 行定义.

template<typename _ChTy >
using winux::CharTypeConstrain = typedef typename CharSpec< typename std::decay<_ChTy>::type >::Type

字符类型约束

在文件 utilities.hpp301 行定义.

typedef std::map< Mixed, Mixed, MixedLess > winux::MixedMixedMap

在文件 utilities.hpp1223 行定义.

在文件 utilities.hpp1231 行定义.

typedef std::pair< Mixed const, Mixed > winux::MixedMixedPair

在文件 utilities.hpp1233 行定义.

枚举类型说明

颜色属性标记

枚举值
fgBlack 
fgNavy 
fgAtrovirens 
fgTeal 
fgMaroon 
fgPurple 
fgOlive 
fgSilver 
fgGray 
fgIntensity 
fgBlue 
fgGreen 
fgAqua 
fgRed 
fgFuchsia 
fgYellow 
fgWhite 
bgNavy 
bgAtrovirens 
bgTeal 
bgMaroon 
bgPurple 
bgOlive 
bgSilver 
bgBlack 
bgWhite 
bgGray 
bgBlue 
bgGreen 
bgAqua 
bgRed 
bgFuchsia 
bgYellow 
ccaIgnore 

在文件 console.hpp12 行定义.

文本对齐方式

枚举值
ctlaLeft 
ctlaCenter 
ctlaRight 

在文件 console.hpp229 行定义.

内容加密错误代码

枚举值
ERR_SUCCEED 
ERR_DATASIZE 
ERR_BUFFSIZE 

在文件 encoding.hpp400 行定义.

文件编码

枚举值
feUnspec 

未指定

feMultiByte 

多字节

feUtf8 

UTF-8.

feUtf8Bom 

UTF-8 with BOM.

feUtf16Le 

UTF-16小端序

feUtf16Be 

UTF-16大端序

feUtf16 

UTF-16大端序

feUtf32Le 

UTF-32小端序

feUtf32Be 

UTF-32大端序

feUtf32 

UTF-32大端序

在文件 filesys.hpp165 行定义.

Seek类型

枚举值
seekSet 

相对于开头位置

seekCur 

相对于当前位置

seekEnd 

相对于结束位置

在文件 filesys.hpp305 行定义.

字符串转换成数字Flags

枚举值
stqUnsigned 

无符号处理

stqNegative 

有解析到负号

stqOverflow 

发生溢出

stqReadDigit 

读到一个正确的数字字符

在文件 strings.hpp377 行定义.

整理标识符串的标记

枚举值
wordRaw 

不处理单词

wordAllUpper 

单词大写

wordAllLower 

单词小写

wordFirstCharUpper 

首字母大写

nameLowerCamelCase 

小驼峰 camelCase

nameUpperCamelCase 

大驼峰 CamelCase

namePascalCase 

帕斯卡命名 PascalCase

nameSnakeCase 

snake_case

nameKebabCase 

kebab-case

nameScreamingSnakeCase 

SCREAMING_SNAKE_CASE.

在文件 strings.hpp590 行定义.

文件映射旗标

枚举值
fmfUnspec 

未指定

fmfReadOnly 

只读

fmfWriteCopy 

写时拷贝

fmfReadWrite 

读写

fmfExecuteReadOnly 

只读执行

fmfExecuteWriteCopy 

写时拷贝执行

fmfExecuteReadWrite 

读写执行

在文件 system.hpp341 行定义.

线程调度策略

枚举值
schedOther 

它是默认的线程分时调度策略,所有的线程的优先级别都是0,线程的调度是通过分时来完成的。如果系统使用这种调度策略,程序将无法设置线程的优先级。请注意,这种调度策略也是抢占式的,当高优先级的线程准备运行的时候,当前线程将被抢占并进入等待队列。这种调度策略仅仅决定线程在可运行线程队列中的具有相同优先级的线程的运行次序。

schedFifo 

它是一种实时的先进先出调用策略,且只能在超级用户下运行。这种调用策略仅仅被使用于优先级大于0的线程。它意味着,使用SCHED_FIFO的可运行线程将一直抢占使用SCHED_OTHER的运行线程。此外SCHED_FIFO是一个非分时的简单调度策略,当一个线程变成可运行状态,它将被追加到对应优先级队列的尾部((POSIX 1003.1)。当所有高优先级的线程终止或者阻塞时,它将被运行。对于相同优先级别的线程,按照简单的先进先运行的规则运行。我们考虑一种很坏的情况,如果有若干相同优先级的线程等待执行,然而最早执行的线程无终止或者阻塞动作,那么其他线程是无法执行的,除非当前线程调用如pthread_yield之类的函数,所以在使用SCHED_FIFO的时候要小心处理相同级别线程的动作。

schedRr 

鉴于SCHED_FIFO调度策略的一些缺点,SCHED_RR对SCHED_FIFO做出了一些增强功能。从实质上看,它还是SCHED_FIFO调用策略。它使用最大运行时间来限制当前进程的运行,当运行时间大于等于最大运行时间的时候,当前线程将被切换并放置于相同优先级队列的最后。这样做的好处是其他具有相同级别的线程能在“自私“线程下执行。

schedMin 
schedMax 

在文件 threads.hpp33 行定义.

函数说明

template<typename _VarType >
std::ostream& winux::operator<< ( std::ostream &  out,
ConsoleAttrT< _VarType > const &  tr 
)
inline

在文件 console.hpp131 行定义.

template<typename _VarType >
std::istream& winux::operator>> ( std::istream &  in,
ConsoleAttrT< _VarType > const &  tr 
)
inline

在文件 console.hpp140 行定义.

template<typename _VarType >
std::wostream& winux::operator<< ( std::wostream &  out,
ConsoleAttrT< _VarType > const &  tr 
)
inline

在文件 console.hpp149 行定义.

template<typename _VarType >
std::wistream& winux::operator>> ( std::wistream &  in,
ConsoleAttrT< _VarType > const &  tr 
)
inline

在文件 console.hpp158 行定义.

template<typename _VarType >
ConsoleAttrT<_VarType> winux::ConsoleColor ( winux::ushort  attr,
_VarType const &  v,
bool  isSetBgColor = false 
)
inline

控制台颜色函数

在文件 console.hpp168 行定义.

template<typename _ChTy >
static void winux::OutputV ( std::basic_ostream< _ChTy > &  out)
inlinestatic

在文件 console.hpp185 行定义.

template<typename _ChTy , typename _Ty , typename... _ArgType>
static void winux::OutputV ( std::basic_ostream< _ChTy > &  out,
_Ty &&  a,
_ArgType &&...  arg 
)
inlinestatic

在文件 console.hpp190 行定义.

template<typename... _ArgType>
static void winux::ColorOutputLine ( winux::ConsoleAttr const &  ca,
_ArgType &&...  arg 
)
inlinestatic

在文件 console.hpp197 行定义.

template<typename... _ArgType>
static void winux::ColorOutput ( winux::ConsoleAttr const &  ca,
_ArgType &&...  arg 
)
inlinestatic

在文件 console.hpp215 行定义.

String winux::ConsoleTextLayout ( String const &  text,
size_t  maxLength,
ConsoleTextLayoutAlignment  align = ctlaLeft,
String::value_type  blankCh = ' ',
bool  isTrunc = true,
size_t  ellipsis = 3 
)

控制台文本布局,按指定长度输出文本。可以控制对齐方式,是否截断,截断省略号

template<typename _ChTy >
AnsiString winux::UrlEncode ( void const *  buf,
size_t  size 
)
inline

URL编码

除了-_.之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数,空格则编码为加号(+)。 此编码与WWW表单POST数据的编码方式是一样的,同时与application/x-www-form-urlencoded的媒体类型编码方式一样。 由于历史原因,此编码在将空格编码为加号(+)方面与RFC1738编码不同。 此函数便于将字符串编码并将其用于URL的请求部分,同时它还便于将变量传递给下一页。

在文件 encoding.hpp36 行定义.

template<>
XString<char> winux::UrlEncode ( void const *  buf,
size_t  size 
)
inline

URL编码

除了-_.之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数,空格则编码为加号(+)。 此编码与WWW表单POST数据的编码方式是一样的,同时与application/x-www-form-urlencoded的媒体类型编码方式一样。 由于历史原因,此编码在将空格编码为加号(+)方面与RFC1738编码不同。 此函数便于将字符串编码并将其用于URL的请求部分,同时它还便于将变量传递给下一页。

在文件 encoding.hpp36 行定义.

template<>
XString<wchar> winux::UrlEncode ( void const *  buf,
size_t  size 
)
inline

URL编码

除了-_.之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数,空格则编码为加号(+)。 此编码与WWW表单POST数据的编码方式是一样的,同时与application/x-www-form-urlencoded的媒体类型编码方式一样。 由于历史原因,此编码在将空格编码为加号(+)方面与RFC1738编码不同。 此函数便于将字符串编码并将其用于URL的请求部分,同时它还便于将变量传递给下一页。

在文件 encoding.hpp36 行定义.

template<>
XString<char16> winux::UrlEncode ( void const *  buf,
size_t  size 
)
inline

URL编码

除了-_.之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数,空格则编码为加号(+)。 此编码与WWW表单POST数据的编码方式是一样的,同时与application/x-www-form-urlencoded的媒体类型编码方式一样。 由于历史原因,此编码在将空格编码为加号(+)方面与RFC1738编码不同。 此函数便于将字符串编码并将其用于URL的请求部分,同时它还便于将变量传递给下一页。

在文件 encoding.hpp36 行定义.

template<>
XString<char32> winux::UrlEncode ( void const *  buf,
size_t  size 
)
inline

URL编码

除了-_.之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数,空格则编码为加号(+)。 此编码与WWW表单POST数据的编码方式是一样的,同时与application/x-www-form-urlencoded的媒体类型编码方式一样。 由于历史原因,此编码在将空格编码为加号(+)方面与RFC1738编码不同。 此函数便于将字符串编码并将其用于URL的请求部分,同时它还便于将变量传递给下一页。

在文件 encoding.hpp36 行定义.

template<typename _ChTy >
AnsiString winux::UrlEncode ( AnsiString const &  data)
inline

在文件 encoding.hpp27 行定义.

template<typename _ChTy >
AnsiString winux::UrlEncodeBuffer ( Buffer const &  buf)
inline

在文件 encoding.hpp29 行定义.

template<typename _ChTy >
AnsiString winux::UrlDecode ( XString< _ChTy > const &  encodedStr)

URL编码,与UrlEncode()配套

template<>
AnsiString winux::UrlDecode ( XString< char > const &  encodedStr)
template<>
AnsiString winux::UrlDecode ( XString< wchar > const &  encodedStr)
template<>
AnsiString winux::UrlDecode ( XString< char16 > const &  encodedStr)
template<>
AnsiString winux::UrlDecode ( XString< char32 > const &  encodedStr)
template<typename _ChTy >
Buffer winux::UrlDecodeBuffer ( XString< _ChTy > const &  encodedStr)

URL编码,与UrlEncodeBuffer()配套

template<>
Buffer winux::UrlDecodeBuffer ( XString< char > const &  encodedStr)
template<>
Buffer winux::UrlDecodeBuffer ( XString< wchar > const &  encodedStr)
template<>
Buffer winux::UrlDecodeBuffer ( XString< char16 > const &  encodedStr)
template<>
Buffer winux::UrlDecodeBuffer ( XString< char32 > const &  encodedStr)
AnsiString winux::UrlDecode ( AnsiString const &  encodedStr)
inline

在文件 encoding.hpp70 行定义.

Buffer winux::UrlDecodeBuffer ( AnsiString const &  encodedStr)
inline

在文件 encoding.hpp71 行定义.

template<typename _ChTy >
AnsiString winux::UriComponentEncode ( void const *  buf,
size_t  size 
)
inline

URI组成部分编码,遵循RFC1738.

除了-_.~之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数。 这是在RFC1738中描述的编码。

在文件 encoding.hpp100 行定义.

template<>
XString<char> winux::UriComponentEncode ( void const *  buf,
size_t  size 
)
inline

URI组成部分编码,遵循RFC1738.

除了-_.~之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数。 这是在RFC1738中描述的编码。

在文件 encoding.hpp100 行定义.

template<>
XString<wchar> winux::UriComponentEncode ( void const *  buf,
size_t  size 
)
inline

URI组成部分编码,遵循RFC1738.

除了-_.~之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数。 这是在RFC1738中描述的编码。

在文件 encoding.hpp100 行定义.

template<>
XString<char16> winux::UriComponentEncode ( void const *  buf,
size_t  size 
)
inline

URI组成部分编码,遵循RFC1738.

除了-_.~之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数。 这是在RFC1738中描述的编码。

在文件 encoding.hpp100 行定义.

template<>
XString<char32> winux::UriComponentEncode ( void const *  buf,
size_t  size 
)
inline

URI组成部分编码,遵循RFC1738.

除了-_.~之外的所有非字母数字字符都将被替换成百分号()后跟两位十六进制数。 这是在RFC1738中描述的编码。

在文件 encoding.hpp100 行定义.

template<typename _ChTy >
AnsiString winux::UriComponentEncode ( AnsiString const &  data)
inline

在文件 encoding.hpp91 行定义.

template<typename _ChTy >
AnsiString winux::UriComponentEncodeBuffer ( Buffer const &  buf)
inline

在文件 encoding.hpp93 行定义.

template<typename _ChTy >
AnsiString winux::UriComponentDecode ( XString< _ChTy > const &  encodedStr)

URI组成部分编码,与UriComponentEncode()配套

template<>
AnsiString winux::UriComponentDecode ( XString< char > const &  encodedStr)
template<>
AnsiString winux::UriComponentDecode ( XString< wchar > const &  encodedStr)
template<>
AnsiString winux::UriComponentDecode ( XString< char16 > const &  encodedStr)
template<>
AnsiString winux::UriComponentDecode ( XString< char32 > const &  encodedStr)
template<typename _ChTy >
Buffer winux::UriComponentDecodeBuffer ( XString< _ChTy > const &  encodedStr)

URI组成部分编码,与UriComponentEncodeBuffer()配套

template<>
Buffer winux::UriComponentDecodeBuffer ( XString< char > const &  encodedStr)
template<>
Buffer winux::UriComponentDecodeBuffer ( XString< wchar > const &  encodedStr)
template<>
Buffer winux::UriComponentDecodeBuffer ( XString< char16 > const &  encodedStr)
template<>
Buffer winux::UriComponentDecodeBuffer ( XString< char32 > const &  encodedStr)
AnsiString winux::UriComponentDecode ( AnsiString const &  encodedStr)
inline

在文件 encoding.hpp134 行定义.

Buffer winux::UriComponentDecodeBuffer ( AnsiString const &  encodedStr)
inline

在文件 encoding.hpp135 行定义.

String winux::UrlEncodeString ( String const &  str,
bool  asUtf8 = sizeof(String::value_type)==sizeof(wchar) 
)

URL编码

String winux::UrlDecodeString ( String const &  encodedStr,
bool  isUtf8 = sizeof(String::value_type)==sizeof(wchar) 
)

URL解码,与UrlEncodeString()配套

String winux::UriComponentEncodeString ( String const &  str,
bool  asUtf8 = sizeof(String::value_type)==sizeof(wchar) 
)

URI组成部分编码,遵循RFC1738.

String winux::UriComponentDecodeString ( String const &  encodedStr,
bool  isUtf8 = sizeof(String::value_type)==sizeof(wchar) 
)

URI组成部分解码,与UriComponentEncodeString()配套

String winux::HtmlEncode ( String const &  str)

HTML编码。作用字符:'&', '<', '>', ' '.

String winux::HtmlDecode ( String const &  str)

HTML解码。与HtmlEncode()配套

template<typename _ChTy >
AnsiString winux::Base64Encode ( void const *  buf,
size_t  size 
)
inline

Base64编码

在文件 encoding.hpp186 行定义.

template<>
XString<char> winux::Base64Encode ( void const *  buf,
size_t  size 
)
inline

Base64编码

在文件 encoding.hpp186 行定义.

template<>
XString<wchar> winux::Base64Encode ( void const *  buf,
size_t  size 
)
inline

Base64编码

在文件 encoding.hpp186 行定义.

template<>
XString<char16> winux::Base64Encode ( void const *  buf,
size_t  size 
)
inline

Base64编码

在文件 encoding.hpp186 行定义.

template<>
XString<char32> winux::Base64Encode ( void const *  buf,
size_t  size 
)
inline

Base64编码

在文件 encoding.hpp186 行定义.

template<typename _ChTy >
AnsiString winux::Base64Encode ( AnsiString const &  data)
inline

Base64编码

在文件 encoding.hpp174 行定义.

template<typename _ChTy >
AnsiString winux::Base64EncodeBuffer ( Buffer const &  buf)
inline

Base64编码

在文件 encoding.hpp178 行定义.

template<typename _ChTy >
AnsiString winux::Base64Decode ( XString< _ChTy > const &  base64Str)

Base64解码,与Base64Encode()配套

template<>
AnsiString winux::Base64Decode ( XString< char > const &  base64Str)
template<>
AnsiString winux::Base64Decode ( XString< wchar > const &  base64Str)
template<>
AnsiString winux::Base64Decode ( XString< char16 > const &  base64Str)
template<>
AnsiString winux::Base64Decode ( XString< char32 > const &  base64Str)
template<typename _ChTy >
Buffer winux::Base64DecodeBuffer ( XString< _ChTy > const &  base64Str)

Base64解码,与Base64Encode()配套

template<>
Buffer winux::Base64DecodeBuffer ( XString< char > const &  base64Str)
template<>
Buffer winux::Base64DecodeBuffer ( XString< wchar > const &  base64Str)
template<>
Buffer winux::Base64DecodeBuffer ( XString< char16 > const &  base64Str)
template<>
Buffer winux::Base64DecodeBuffer ( XString< char32 > const &  base64Str)
AnsiString winux::Base64Decode ( AnsiString const &  base64Str)
inline

Base64解码,与Base64Encode()配套

在文件 encoding.hpp222 行定义.

Buffer winux::Base64DecodeBuffer ( AnsiString const &  base64Str)
inline

在文件 encoding.hpp223 行定义.

template<typename _ChTy >
AnsiString winux::BufferToHex ( Buffer const &  buf)
inline

二进制数据转成16进制串

在文件 encoding.hpp243 行定义.

template<>
XString<char> winux::BufferToHex ( Buffer const &  buf)
inline

二进制数据转成16进制串

在文件 encoding.hpp243 行定义.

template<>
XString<wchar> winux::BufferToHex ( Buffer const &  buf)
inline

二进制数据转成16进制串

在文件 encoding.hpp243 行定义.

template<>
XString<char16> winux::BufferToHex ( Buffer const &  buf)
inline

二进制数据转成16进制串

在文件 encoding.hpp243 行定义.

template<>
XString<char32> winux::BufferToHex ( Buffer const &  buf)
inline

二进制数据转成16进制串

在文件 encoding.hpp243 行定义.

template<typename _ChTy >
Buffer winux::HexToBuffer ( XString< _ChTy > const &  hexStr)

16进制串转成二进制数据

template<>
Buffer winux::HexToBuffer ( XString< char > const &  hexStr)
template<>
Buffer winux::HexToBuffer ( XString< wchar > const &  hexStr)
template<>
Buffer winux::HexToBuffer ( XString< char16 > const &  hexStr)
template<>
Buffer winux::HexToBuffer ( XString< char32 > const &  hexStr)
Buffer winux::HexToBuffer ( AnsiString const &  hexStr)
inline

16进制串转成二进制数据

在文件 encoding.hpp263 行定义.

Buffer winux::Md5 ( void const *  buf,
size_t  size 
)

将数据进行md5编码,返回二进制数据

Buffer winux::Md5 ( Buffer const &  buf)
inline

将数据进行md5编码,返回二进制数据

在文件 encoding.hpp270 行定义.

template<typename _ChTy >
AnsiString winux::Md5Hex ( void const *  buf,
size_t  size 
)
inline

将数据进行md5编码,返回16进制数字符串

在文件 encoding.hpp274 行定义.

template<typename _ChTy >
AnsiString winux::Md5Hex ( Buffer const &  buf)
inline

将数据进行md5编码,返回16进制数字符串

在文件 encoding.hpp277 行定义.

Buffer winux::Sha1 ( void const *  buf,
size_t  size 
)

将数据进行sha1编码,返回二进制数据

Buffer winux::Sha1 ( Buffer const &  buf)
inline

将数据进行sha1编码,返回二进制数据

在文件 encoding.hpp292 行定义.

template<typename _ChTy >
AnsiString winux::Sha1Hex ( void const *  buf,
size_t  size 
)
inline

将数据进行sha1编码,返回16进制数字符串

在文件 encoding.hpp296 行定义.

template<typename _ChTy >
AnsiString winux::Sha1Hex ( Buffer const &  buf)
inline

将数据进行sha1编码,返回16进制数字符串

在文件 encoding.hpp299 行定义.

Buffer winux::Sha224 ( void const *  buf,
size_t  size 
)

将数据进行sha224编码,返回二进制数据

Buffer winux::Sha224 ( Buffer const &  buf)
inline

将数据进行sha224编码,返回二进制数据

在文件 encoding.hpp314 行定义.

template<typename _ChTy >
AnsiString winux::Sha224Hex ( void const *  buf,
size_t  size 
)
inline

将数据进行sha224编码,返回16进制数字符串

在文件 encoding.hpp318 行定义.

template<typename _ChTy >
AnsiString winux::Sha224Hex ( Buffer const &  buf)
inline

将数据进行sha224编码,返回16进制数字符串

在文件 encoding.hpp321 行定义.

Buffer winux::Sha256 ( void const *  buf,
size_t  size 
)

将数据进行sha256编码,返回二进制数据

Buffer winux::Sha256 ( Buffer const &  buf)
inline

将数据进行sha256编码,返回二进制数据

在文件 encoding.hpp336 行定义.

template<typename _ChTy >
AnsiString winux::Sha256Hex ( void const *  buf,
size_t  size 
)
inline

将数据进行sha256编码,返回16进制数字符串

在文件 encoding.hpp340 行定义.

template<typename _ChTy >
AnsiString winux::Sha256Hex ( Buffer const &  buf)
inline

将数据进行sha256编码,返回16进制数字符串

在文件 encoding.hpp343 行定义.

Buffer winux::Sha384 ( void const *  buf,
size_t  size 
)

将数据进行sha384编码,返回二进制数据

Buffer winux::Sha384 ( Buffer const &  buf)
inline

将数据进行sha384编码,返回二进制数据

在文件 encoding.hpp358 行定义.

template<typename _ChTy >
AnsiString winux::Sha384Hex ( void const *  buf,
size_t  size 
)
inline

将数据进行sha384编码,返回16进制数字符串

在文件 encoding.hpp362 行定义.

template<typename _ChTy >
AnsiString winux::Sha384Hex ( Buffer const &  buf)
inline

将数据进行sha384编码,返回16进制数字符串

在文件 encoding.hpp365 行定义.

Buffer winux::Sha512 ( void const *  buf,
size_t  size 
)

将数据进行sha512编码,返回二进制数据

Buffer winux::Sha512 ( Buffer const &  buf)
inline

将数据进行sha512编码,返回二进制数据

在文件 encoding.hpp380 行定义.

template<typename _ChTy >
AnsiString winux::Sha512Hex ( void const *  buf,
size_t  size 
)
inline

将数据进行sha512编码,返回16进制数字符串

在文件 encoding.hpp384 行定义.

template<typename _ChTy >
AnsiString winux::Sha512Hex ( Buffer const &  buf)
inline

将数据进行sha512编码,返回16进制数字符串

在文件 encoding.hpp387 行定义.

int winux::RawEncrypt ( byte const *  data,
size_t  dataSize,
byte buf,
size_t  bufSize,
size_t *  outSize 
)

未进行C++包装的内容加密

int winux::RawDecrypt ( byte const *  encryptData,
size_t  dataSize,
byte buf,
size_t  bufSize,
size_t *  outSize 
)

未进行C++包装的内容解密,与RawEncrypt()配套

AnsiString winux::EncryptContent ( AnsiString const &  content)

内容加密

Buffer winux::EncryptContent ( Buffer const &  content)

内容加密

AnsiString winux::DecryptContent ( AnsiString const &  encryptContent)

内容解密,与EncryptContent()配套

Buffer winux::DecryptContent ( Buffer const &  encryptContent)

内容解密,与EncryptContent()配套

String winux::GetExecutablePath ( void  )

获取可执行文件的全路径

String winux::FilePath ( String const &  fullPath,
String fileName = NULL 
)

获取文件目录路径(末尾不含目录分隔符)

参数
fullPath文件全路径
fileName返回文件名
返回
String
String winux::FileTitle ( String const &  fileName,
String extName = NULL 
)

获取文件标题

参数
fileNameString const& 文件名
extNameString* 返回扩展名(不包括'.')
返回
String
bool winux::IsAbsPath ( String const &  path)

判断是否为绝对路径

String winux::NormalizePath ( String const &  path)

使路径规则化(末尾不带路径分割符)

String winux::RealPath ( String const &  path)

根据当前工作目录计算绝对路径,不会检查存在性

String winux::RealPathEx ( String const &  path,
String const &  workDirAbsPath 
)

根据指定工作目录计算绝对路径,不会检查存在性

参数
workDirAbsPath绝对路径指定工作目录,如果为空则效果同RealPath()
String winux::GetCurrentDir ( void  )

返回当前工作目录(末尾不含目录分隔符)

bool winux::SetCurrentDir ( String const &  path)

设置当前工作目录

bool winux::IsDir ( String const &  path)

判断是否是一个目录

bool winux::DetectPath ( String const &  path,
bool *  isDir = NULL 
)

探测一个路径是存在还是不存在,是目录还是文件

返回true/false表示是否存在, *isDir返回true/false表示是否为目录

uint64 winux::FileSize ( String const &  filename)

获取文件大小(也适用于大于4GB的文件)

bool winux::FileTime ( String const &  filename,
time_t *  ctime,
time_t *  mtime,
time_t *  atime 
)

获取文件时间

参数
filenameString const &
ctimetime_t * 可传递nullptr表示不获取create time
mtimetime_t * 可传递nullptr表示不获取modify time
atimetime_t * 可传递nullptr表示不获取access time
返回
bool
time_t winux::FileCTime ( String const &  filename)

获取文件创建时间

time_t winux::FileMTime ( String const &  filename)

获取文件修改时间

time_t winux::FileATime ( String const &  filename)

获取文件访问时间

bool winux::FileTouch ( String const &  filename,
time_t  time = (time_t)-1,
time_t  atime = (time_t)-1 
)

更新文件修改时间,访问时间

String winux::PathWithSep ( String const &  path)

路径末尾带分隔符。如果path是空串则不作处理

String winux::PathNoSep ( String const &  path)

路径末尾不带分隔符。如果path是空串则不作处理

String& winux::PathWithSep ( String path)

路径末尾带分隔符。如果*path是空串则不作处理

String& winux::PathNoSep ( String path)

路径末尾不带分隔符。如果*path是空串则不作处理

String winux::CombinePath ( String const &  dirPath,
String const &  fileName 
)

把一个目录路径和一个文件名组合成一个新路径

如果dirPath为空则直接返回fileName,如果fileName为空则返回PathWithSep(dirPath)

void winux::FolderData ( String const &  path,
StringArray fileArr,
StringArray subFolderArr,
int  sortType = 0 
)

获取文件夹中的文件和子文件夹。sortType:0结果不排序 1正序 2反序

size_t winux::EnumFiles ( String const &  path,
Mixed const &  ext,
StringArray arrFiles,
bool  isRecursive = false 
)

在指定路径下枚举指定扩展名的文件

参数
path路径
ext可以是扩展名串,也可以是一个数组。Mixed(MT_NULL)表示忽略
arrFiles返回的结果。
isRecursive是否递归。当为false时,arrFiles返回的结果不用区别目录,因此不包含目录部分的路径。
返回
size_t 文件数
bool winux::UnlinkFile ( String const &  filePath)

断开路径与磁盘文件的链接,即删除文件(只能删除文件,不能删除目录)

当一个文件被unlink后,它实际上并没有立即从文件系统中删除,而是变成了“孤立”的状态。这意味着文件的内容仍然占用着磁盘空间,但是不再有任何路径可以访问到这个文件。
如果程序通过文件描述符仍然持有对该文件的打开句柄,那么它仍然可以继续访问文件的内容,直到所有打开的句柄都被关闭。
当最后一个对该文件的引用(即所有打开的文件描述符)被关闭时,文件才会被彻底删除。

bool winux::RemoveDir ( String const &  dirPath)

删除空目录。如果目录非空则失败

bool winux::RemovePath ( String const &  path)

删除文件和空目录。如果路径指向的是一个非空目录则失败

删除文件时,不会保留文件内容,即使文件仍然被某些程序打开。

bool winux::RenamePath ( String const &  oldPath,
String const &  newPath 
)

重命名文件或目录,或者将文件或目录从一个目录移动到另一个目录

size_t winux::CommonDelete ( String const &  path)

通用删除。删除文件夹和文件,返回删除的文件夹和文件数

bool winux::MakeDirExists ( String const &  path,
int  mode = 0755 
)

确保目录路径的存在性,如果不存在则创建。

linux下需设置目录权限(8进制数),默认权限0755
owner - group - other
R W X - R W X - R W X
1 1 1 - 1 0 1 - 1 0 1
7 5 5

FileEncoding winux::RecognizeFileEncoding ( winux::Buffer const &  content,
size_t *  pIndex,
size_t  limitSize = -1 
)

识别文件编码

参数
[in]content文件内容
[in,out]pIndex传入起始位置,返回跳过BOM真正文本开始的位置
[in]limitSize限制搜寻大小,默认-1是指按内容大小
template<typename _ChTy >
XString<_ChTy> winux::NewlineFromFile ( _ChTy const *  content,
size_t  len,
bool  b 
)

从文件中换行到程序环境中。b表示是否反序,配合IsLittleEndian()/IsBigEndian()使用

template<>
XString<char> winux::NewlineFromFile ( char const *  content,
size_t  len,
bool  b 
)
template<>
XString<wchar> winux::NewlineFromFile ( wchar const *  content,
size_t  len,
bool  b 
)
template<>
XString<char16> winux::NewlineFromFile ( char16 const *  content,
size_t  len,
bool  b 
)
template<>
XString<char32> winux::NewlineFromFile ( char32 const *  content,
size_t  len,
bool  b 
)
template<typename _ChTy >
XString<_ChTy> winux::NewlineToFile ( _ChTy const *  content,
size_t  len,
bool  b 
)

从程序环境中换行到文件中。b表示是否反序,配合IsLittleEndian()/IsBigEndian()使用

template<>
XString<char> winux::NewlineToFile ( char const *  content,
size_t  len,
bool  b 
)
template<>
XString<wchar> winux::NewlineToFile ( wchar const *  content,
size_t  len,
bool  b 
)
template<>
XString<char16> winux::NewlineToFile ( char16 const *  content,
size_t  len,
bool  b 
)
template<>
XString<char32> winux::NewlineToFile ( char32 const *  content,
size_t  len,
bool  b 
)
String winux::FileGetString ( String const &  filename,
FileEncoding  encoding = feMultiByte 
)

载入文件内容为文本字符串

此函数能识别BOM,即使在多字节字符环境下也要比FileGetContents()好用,但效率可能不如它。

参数
filename文件路径
encoding文件编码。默认feMultiByte表示系统本地编码。feUnspec表示自动从文件识别
返回
String
AnsiString winux::FileGetContents ( String const &  filename,
bool  textMode = true 
)

载入文件内容为一个AnsiString,textMode表示是否为文本模式

Buffer winux::FileGetContentsEx ( String const &  filename,
bool  textMode 
)

载入文件内容为一个Buffer,textMode表示是否为文本模式

bool winux::FilePutString ( String const &  filename,
String const &  content,
FileEncoding  encoding = feMultiByte 
)

把字符串内容写入文件

参数
filename文件路径
content要写的文本内容
encoding文件编码。默认feMultiByte表示系统本地编码。若是feUnspec则当作feMultiByte处理
返回
bool
bool winux::FilePutContents ( String const &  filename,
AnsiString const &  content,
bool  textMode = true 
)

AnsiString内容写入文件,textMode表示是否为文本模式

bool winux::FilePutContentsEx ( String const &  filename,
Buffer const &  content,
bool  textMode 
)

Buffer内容写入文件,textMode表示是否为文本模式

String winux::BackupFile ( String const &  filePath,
String const &  bakDir = $T(""),
String const &  fmt = $T("%f_v%v%E") 
)

在给定目录备份指定文件

参数
filePath要备份的文件路径
bakDir备份文件存放的目录(相对于filePath
fmtf是文件标题,v是版本编号,e是扩展名(不包含'.'),E是扩展名(包含'.')
返回
String 备份成功返回文件路径,备份失败返回空串
bool winux::JsonSetByteOrderForUtf16 ( bool  isLittleEndian)

设置字节序。此字节序是解析时,存储编码数字的字节序。

参数
isLittleEndiantrue:小端序,false:大端序、默认小端序
返回
返回上次设置
String winux::JsonSetConvertToCharsetForUtf16 ( String const &  charset)

设置转换到的字符集编码。此表示解析时,转换成什么编码。默认为空串,即本地编码。

假设JSON文本的编码是X,当X不是本地编码,并且内部含有非ANSI字符以及的字符时,应该调用此函数指定编码为X。不然会转换成本地编码和JSON的编码X冲突。

参数
charset多字节环境默认为空表示本地编码,宽字符环境默认为UTF-16(字节序和平台一致)。必须是iconv库能识别的编码字符串,例如UTF-8、UTF-16、UTF-16LE、UTF-16BE、GBK等等
返回
返回上次设置
bool winux::ParseJson ( String const &  json,
Mixed val 
)

JSON串解析成Mixed.

Mixed winux::Json ( String const &  json)

JSON串解析成Mixed.

AnsiString winux::MixedToJsonA ( Mixed const &  v,
bool  autoKeyQuotes 
)
UnicodeString winux::MixedToJsonW ( Mixed const &  v,
bool  autoKeyQuotes 
)
AnsiString winux::MixedToJson ( Mixed const &  v,
bool  autoKeyQuotes 
)
inline

Mixed输出成Json.

在文件 json.hpp35 行定义.

AnsiString winux::MixedToJsonExA ( Mixed const &  v,
bool  autoKeyQuotes,
AnsiString const &  spacer = "",
AnsiString const &  newline = "" 
)
UnicodeString winux::MixedToJsonExW ( Mixed const &  v,
bool  autoKeyQuotes,
UnicodeString const &  spacer = L"",
UnicodeString const &  newline = L"" 
)
AnsiString winux::MixedToJsonEx ( Mixed const &  v,
bool  autoKeyQuotes,
AnsiString const &  spacer = "",
AnsiString const &  newline = "" 
)
inline

Mixed输出成Json,支持结构化。

参数
spacer缩进留白,默认空串表示不缩进留白
newline换行符,默认空串表示不换行

在文件 json.hpp47 行定义.

long winux::LongAtomicIncrement ( long volatile *  p)

原子化使一个Long型变量+1,返回值是+1后的*p值

long winux::LongAtomicDecrement ( long volatile *  p)

原子化使一个Long型变量-1,返回值是-1后的*p值

long winux::LongAtomicCompareExchange ( long volatile *  p,
long  exchange,
long  comparand 
)

原子化操作,*p若和comparand相等,就把*p赋成exchange,返回值是初始的*p值

template<typename _Other , typename _Yty >
void winux::_EnableSharedFromThis1 ( SharedPointer< _Other > const &  sharedThis,
_Yty *  ptr,
std::true_type   
)

在文件 smartptr.hpp478 行定义.

template<typename _Other , typename _Yty >
void winux::_EnableSharedFromThis1 ( SharedPointer< _Other > const &  ,
_Yty *  ,
std::false_type   
)

在文件 smartptr.hpp488 行定义.

template<typename _Other , typename _Yty >
void winux::_EnableSharedFromThis ( SharedPointer< _Other > const &  sharedThis,
_Yty *  ptr 
)

在文件 smartptr.hpp494 行定义.

template<typename _Ty >
SimplePointer<_Ty> winux::MakeSimple ( _Ty *  newObj)
inline

创建一个SimplePointer来管理新对象资源

在文件 smartptr.hpp1270 行定义.

template<typename _Ty , typename _Dt >
SimplePointer<_Ty> winux::MakeSimple ( _Ty *  newObj,
_Dt  dt 
)
inline

创建一个SimplePointer来管理新对象资源,自定义可调用删除器

在文件 smartptr.hpp1277 行定义.

template<typename _Ty >
SharedPointer<_Ty> winux::MakeShared ( _Ty *  newObj)
inline

创建一个SharedPointer来管理新对象资源

在文件 smartptr.hpp1284 行定义.

template<typename _Ty , typename _Dt >
SharedPointer<_Ty> winux::MakeShared ( _Ty *  newObj,
_Dt  dt 
)
inline

创建一个SharedPointer来管理新对象资源,自定义可调用删除器

在文件 smartptr.hpp1291 行定义.

template<typename _ChTy >
static XString<_ChTy> winux::CharSeqToString ( _ChTy const *  str,
size_t  len = npos 
)
inlinestatic

C字符串转到XString.

参数
strC字符串。如果是nullptr则处理成空串""
len长度。默认npos,表示遇到NUL字符结束

在文件 strings.hpp16 行定义.

template<typename _RetChTy , typename _ChTy = _RetChTy>
static XString<_RetChTy> winux::CharToHexStr ( _ChTy  ch,
bool  padZero = false 
)
inlinestatic

字符转成16进制串形式

在文件 strings.hpp24 行定义.

template<typename _ChTy >
size_t winux::StrSplit ( XString< _ChTy > const &  str,
XString< _ChTy > const &  delimList,
XStringArray< _ChTy > *  arr,
bool  alwaysRetOneElem = false 
)
template<>
size_t winux::StrSplit ( XString< char > const &  str,
XString< char > const &  delimList,
XStringArray< char > *  arr,
bool  alwaysRetOneElem 
)
template<>
size_t winux::StrSplit ( XString< wchar > const &  str,
XString< wchar > const &  delimList,
XStringArray< wchar > *  arr,
bool  alwaysRetOneElem 
)
template<>
size_t winux::StrSplit ( XString< char16 > const &  str,
XString< char16 > const &  delimList,
XStringArray< char16 > *  arr,
bool  alwaysRetOneElem 
)
template<>
size_t winux::StrSplit ( XString< char32 > const &  str,
XString< char32 > const &  delimList,
XStringArray< char32 > *  arr,
bool  alwaysRetOneElem 
)
size_t winux::StrSplit ( AnsiString const &  str,
AnsiString const &  delimList,
AnsiStringArray arr,
bool  alwaysRetOneElem = false 
)
inline

字符串分割

函数会把str内分割符间的内容(即使是空串)添加到arr中,返回个数。

参数
str待分割的内容
delimList指示分割符列表,分割符只能是一个字符
arr输出到的数组
alwaysRetOneElem当为true时,即使str是空串时也会向arr返回一个数组元素,元素值是空串。
返回
size_t

在文件 strings.hpp71 行定义.

template<typename _ChTy >
XStringArray<_ChTy> winux::StrSplit ( XString< _ChTy > const &  str,
XString< _ChTy > const &  delimList,
bool  alwaysRetOneElem = false 
)
template<>
XStringArray<char> winux::StrSplit ( XString< char > const &  str,
XString< char > const &  delimList,
bool  alwaysRetOneElem 
)
template<>
XStringArray<wchar> winux::StrSplit ( XString< wchar > const &  str,
XString< wchar > const &  delimList,
bool  alwaysRetOneElem 
)
template<>
XStringArray<char16> winux::StrSplit ( XString< char16 > const &  str,
XString< char16 > const &  delimList,
bool  alwaysRetOneElem 
)
template<>
XStringArray<char32> winux::StrSplit ( XString< char32 > const &  str,
XString< char32 > const &  delimList,
bool  alwaysRetOneElem 
)
AnsiStringArray winux::StrSplit ( AnsiString const &  str,
AnsiString const &  delimList,
bool  alwaysRetOneElem = false 
)
inline

字符串分割

函数会把str内分割符间的内容(即使是空串)添加到arr中,返回个数。

参数
str待分割的内容
delimList指示分割符列表,分割符只能是一个字符
alwaysRetOneElem当为true时,即使str是空串时也会向arr返回一个数组元素,元素值是空串。
返回
StringArray

在文件 strings.hpp95 行定义.

template<typename _ChTy >
size_t winux::StrSplit2 ( XString< _ChTy > const &  str,
XString< _ChTy > const &  delim,
XStringArray< _ChTy > *  arr,
bool  alwaysRetOneElem = false 
)
template<>
size_t winux::StrSplit2 ( XString< char > const &  str,
XString< char > const &  delim,
XStringArray< char > *  arr,
bool  alwaysRetOneElem 
)
template<>
size_t winux::StrSplit2 ( XString< wchar > const &  str,
XString< wchar > const &  delim,
XStringArray< wchar > *  arr,
bool  alwaysRetOneElem 
)
template<>
size_t winux::StrSplit2 ( XString< char16 > const &  str,
XString< char16 > const &  delim,
XStringArray< char16 > *  arr,
bool  alwaysRetOneElem 
)
template<>
size_t winux::StrSplit2 ( XString< char32 > const &  str,
XString< char32 > const &  delim,
XStringArray< char32 > *  arr,
bool  alwaysRetOneElem 
)
size_t winux::StrSplit2 ( AnsiString const &  str,
AnsiString const &  delim,
AnsiStringArray arr,
bool  alwaysRetOneElem = false 
)
inline

字符串分割2

delim指示出分割字符串,函数会把str内分割字符串间的内容(即使是空串)添加到arr中,返回个数。
当alwaysRetOneElem==true时,即使str是空串时也会向arr返回一个数组元素,元素值是空串。

参数
str
delim
arr
返回
size_t

在文件 strings.hpp120 行定义.

template<typename _ChTy >
XStringArray<_ChTy> winux::StrSplit2 ( XString< _ChTy > const &  str,
XString< _ChTy > const &  delim,
bool  alwaysRetOneElem = false 
)
template<>
XStringArray<char> winux::StrSplit2 ( XString< char > const &  str,
XString< char > const &  delim,
bool  alwaysRetOneElem 
)
template<>
XStringArray<wchar> winux::StrSplit2 ( XString< wchar > const &  str,
XString< wchar > const &  delim,
bool  alwaysRetOneElem 
)
template<>
XStringArray<char16> winux::StrSplit2 ( XString< char16 > const &  str,
XString< char16 > const &  delim,
bool  alwaysRetOneElem 
)
template<>
XStringArray<char32> winux::StrSplit2 ( XString< char32 > const &  str,
XString< char32 > const &  delim,
bool  alwaysRetOneElem 
)
AnsiStringArray winux::StrSplit2 ( AnsiString const &  str,
AnsiString const &  delim,
bool  alwaysRetOneElem = false 
)
inline

字符串分割2

delim指示出分割字符串,函数会把str内分割字符串间的内容(即使是空串)添加到arr中,返回个数。
当alwaysRetOneElem==true时,即使str是空串时也会向arr返回一个数组元素,元素值是空串。

参数
str
delim
返回
StringArray

在文件 strings.hpp144 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StrJoin ( XString< _ChTy > const &  delim,
XStringArray< _ChTy > const &  arr 
)
template<>
XString<char> winux::StrJoin ( XString< char > const &  delim,
XStringArray< char > const &  arr 
)
template<>
XString<wchar> winux::StrJoin ( XString< wchar > const &  delim,
XStringArray< wchar > const &  arr 
)
template<>
XString<char16> winux::StrJoin ( XString< char16 > const &  delim,
XStringArray< char16 > const &  arr 
)
template<>
XString<char32> winux::StrJoin ( XString< char32 > const &  delim,
XStringArray< char32 > const &  arr 
)
AnsiString winux::StrJoin ( AnsiString const &  delim,
AnsiStringArray const &  arr 
)
inline

字符串组合连接

在文件 strings.hpp162 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StrJoinEx ( XString< _ChTy > const &  delim,
XStringArray< _ChTy > const &  arr,
size_t  start = 0,
size_t  elemCount = -1 
)
template<>
XString<char> winux::StrJoinEx ( XString< char > const &  delim,
XStringArray< char > const &  arr,
size_t  start,
size_t  elemCount 
)
template<>
XString<wchar> winux::StrJoinEx ( XString< wchar > const &  delim,
XStringArray< wchar > const &  arr,
size_t  start,
size_t  elemCount 
)
template<>
XString<char16> winux::StrJoinEx ( XString< char16 > const &  delim,
XStringArray< char16 > const &  arr,
size_t  start,
size_t  elemCount 
)
template<>
XString<char32> winux::StrJoinEx ( XString< char32 > const &  delim,
XStringArray< char32 > const &  arr,
size_t  start,
size_t  elemCount 
)
AnsiString winux::StrJoinEx ( AnsiString const &  delim,
AnsiStringArray const &  arr,
size_t  start = 0,
size_t  elemCount = -1 
)
inline

字符串组合连接。start表示开始位置,elemCount表示自开始位置的元素数,默认-1表示自开始位置的全部元素

在文件 strings.hpp180 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StrInsert ( XString< _ChTy > const &  str,
size_t  start,
size_t  end,
XString< _ChTy > const &  insert 
)
template<>
XString<char> winux::StrInsert ( XString< char > const &  str,
size_t  start,
size_t  end,
XString< char > const &  insert 
)
template<>
XString<wchar> winux::StrInsert ( XString< wchar > const &  str,
size_t  start,
size_t  end,
XString< wchar > const &  insert 
)
template<>
XString<char16> winux::StrInsert ( XString< char16 > const &  str,
size_t  start,
size_t  end,
XString< char16 > const &  insert 
)
template<>
XString<char32> winux::StrInsert ( XString< char32 > const &  str,
size_t  start,
size_t  end,
XString< char32 > const &  insert 
)
AnsiString winux::StrInsert ( AnsiString const &  str,
size_t  start,
size_t  end,
AnsiString const &  insert 
)
inline

在指定位置插入字符串

在文件 strings.hpp198 行定义.

template<typename _ChTy >
XString<_ChTy>& winux::StrMakeReplace ( XString< _ChTy > *  str,
XString< _ChTy > const &  findText,
XString< _ChTy > const &  replaceText,
size_t  offset = 0 
)
template<>
XString<char>& winux::StrMakeReplace ( XString< char > *  str,
XString< char > const &  findText,
XString< char > const &  replaceText,
size_t  offset 
)
template<>
XString<wchar>& winux::StrMakeReplace ( XString< wchar > *  str,
XString< wchar > const &  findText,
XString< wchar > const &  replaceText,
size_t  offset 
)
template<>
XString<char16>& winux::StrMakeReplace ( XString< char16 > *  str,
XString< char16 > const &  findText,
XString< char16 > const &  replaceText,
size_t  offset 
)
template<>
XString<char32>& winux::StrMakeReplace ( XString< char32 > *  str,
XString< char32 > const &  findText,
XString< char32 > const &  replaceText,
size_t  offset 
)
AnsiString& winux::StrMakeReplace ( AnsiString str,
AnsiString const &  findText,
AnsiString const &  replaceText,
size_t  offset = 0 
)
inline

使字符串全文替换

在文件 strings.hpp216 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StrTrim ( XString< _ChTy > const &  str,
size_t *  leftSpaceCount = nullptr,
size_t *  rightSpaceCount = nullptr 
)
template<>
XString<char> winux::StrTrim ( XString< char > const &  str,
size_t *  leftSpaceCount,
size_t *  rightSpaceCount 
)
template<>
XString<wchar> winux::StrTrim ( XString< wchar > const &  str,
size_t *  leftSpaceCount,
size_t *  rightSpaceCount 
)
template<>
XString<char16> winux::StrTrim ( XString< char16 > const &  str,
size_t *  leftSpaceCount,
size_t *  rightSpaceCount 
)
template<>
XString<char32> winux::StrTrim ( XString< char32 > const &  str,
size_t *  leftSpaceCount,
size_t *  rightSpaceCount 
)
template<typename _ChTy >
XString<_ChTy> winux::StrLTrim ( XString< _ChTy > const &  str,
size_t *  leftSpaceCount = nullptr 
)
template<>
XString<char> winux::StrLTrim ( XString< char > const &  str,
size_t *  leftSpaceCount 
)
template<>
XString<wchar> winux::StrLTrim ( XString< wchar > const &  str,
size_t *  leftSpaceCount 
)
template<>
XString<char16> winux::StrLTrim ( XString< char16 > const &  str,
size_t *  leftSpaceCount 
)
template<>
XString<char32> winux::StrLTrim ( XString< char32 > const &  str,
size_t *  leftSpaceCount 
)
template<typename _ChTy >
XString<_ChTy> winux::StrRTrim ( XString< _ChTy > const &  str,
size_t *  rightSpaceCount = nullptr 
)
template<>
XString<char> winux::StrRTrim ( XString< char > const &  str,
size_t *  rightSpaceCount 
)
template<>
XString<wchar> winux::StrRTrim ( XString< wchar > const &  str,
size_t *  rightSpaceCount 
)
template<>
XString<char16> winux::StrRTrim ( XString< char16 > const &  str,
size_t *  rightSpaceCount 
)
template<>
XString<char32> winux::StrRTrim ( XString< char32 > const &  str,
size_t *  rightSpaceCount 
)
AnsiString winux::StrTrim ( AnsiString const &  str,
size_t *  leftSpaceCount = nullptr,
size_t *  rightSpaceCount = nullptr 
)
inline

祛除字符串首尾出现的空白字符

参数
str
返回
String

在文件 strings.hpp262 行定义.

AnsiString winux::StrLTrim ( AnsiString const &  str,
size_t *  leftSpaceCount = nullptr 
)
inline

在文件 strings.hpp263 行定义.

AnsiString winux::StrRTrim ( AnsiString const &  str,
size_t *  rightSpaceCount = nullptr 
)
inline

在文件 strings.hpp264 行定义.

template<typename _ChTy >
XString<_ChTy>& winux::StrMakeUpper ( XString< _ChTy > *  str)
template<>
XString<char>& winux::StrMakeUpper ( XString< char > *  str)
template<>
XString<wchar>& winux::StrMakeUpper ( XString< wchar > *  str)
template<>
XString<char16>& winux::StrMakeUpper ( XString< char16 > *  str)
template<>
XString<char32>& winux::StrMakeUpper ( XString< char32 > *  str)
AnsiString& winux::StrMakeUpper ( AnsiString str)
inline

使字符串大写

在文件 strings.hpp282 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StrUpper ( XString< _ChTy >  str)
template<>
XString<char> winux::StrUpper ( XString< char >  str)
template<>
XString<wchar> winux::StrUpper ( XString< wchar str)
template<>
XString<char16> winux::StrUpper ( XString< char16 str)
template<>
XString<char32> winux::StrUpper ( XString< char32 str)
AnsiString winux::StrUpper ( AnsiString  str)
inline

使字符串大写

在文件 strings.hpp300 行定义.

template<typename _ChTy >
XString<_ChTy>& winux::StrMakeLower ( XString< _ChTy > *  str)
template<>
XString<char>& winux::StrMakeLower ( XString< char > *  str)
template<>
XString<wchar>& winux::StrMakeLower ( XString< wchar > *  str)
template<>
XString<char16>& winux::StrMakeLower ( XString< char16 > *  str)
template<>
XString<char32>& winux::StrMakeLower ( XString< char32 > *  str)
AnsiString& winux::StrMakeLower ( AnsiString str)
inline

使字符串小写

在文件 strings.hpp318 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StrLower ( XString< _ChTy >  str)
template<>
XString<char> winux::StrLower ( XString< char >  str)
template<>
XString<wchar> winux::StrLower ( XString< wchar str)
template<>
XString<char16> winux::StrLower ( XString< char16 str)
template<>
XString<char32> winux::StrLower ( XString< char32 str)
AnsiString winux::StrLower ( AnsiString  str)
inline

使字符串小写

在文件 strings.hpp336 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StrMultiple ( XString< _ChTy > const &  str,
size_t  multiple 
)
template<>
XString<char> winux::StrMultiple ( XString< char > const &  str,
size_t  multiple 
)
template<>
XString<wchar> winux::StrMultiple ( XString< wchar > const &  str,
size_t  multiple 
)
template<>
XString<char16> winux::StrMultiple ( XString< char16 > const &  str,
size_t  multiple 
)
template<>
XString<char32> winux::StrMultiple ( XString< char32 > const &  str,
size_t  multiple 
)
AnsiString winux::StrMultiple ( AnsiString const &  str,
size_t  multiple 
)
inline

字符串倍数的出现

在文件 strings.hpp354 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StrSubtract ( XString< _ChTy >  str1,
XString< _ChTy > const &  str2 
)
template<>
XString<char> winux::StrSubtract ( XString< char >  str1,
XString< char > const &  str2 
)
template<>
XString<wchar> winux::StrSubtract ( XString< wchar str1,
XString< wchar > const &  str2 
)
template<>
XString<char16> winux::StrSubtract ( XString< char16 str1,
XString< char16 > const &  str2 
)
template<>
XString<char32> winux::StrSubtract ( XString< char32 str1,
XString< char32 > const &  str2 
)
AnsiString winux::StrSubtract ( AnsiString  str1,
AnsiString const &  str2 
)
inline

字符串相减,str1 - str2,即去掉str1里与str2相同的部分。限制:str1 >= str2。

在文件 strings.hpp372 行定义.

template<typename _ChTy >
uint64 winux::StrToXq ( _ChTy const *  nptr,
_ChTy const **  endptr,
int  ibase,
int  flags 
)
template<>
uint64 winux::StrToXq ( char const *  nptr,
char const **  endptr,
int  ibase,
int  flags 
)
inline

字符串转换成64位的数字

在文件 strings.hpp399 行定义.

template<>
uint64 winux::StrToXq ( wchar const *  nptr,
wchar const **  endptr,
int  ibase,
int  flags 
)
template<>
uint64 winux::StrToXq ( char16 const *  nptr,
char16 const **  endptr,
int  ibase,
int  flags 
)
template<>
uint64 winux::StrToXq ( char32 const *  nptr,
char32 const **  endptr,
int  ibase,
int  flags 
)
template<typename _ChTy >
int64 winux::StrToInt64 ( XString< _ChTy > const &  numStr,
int  ibase 
)
template<>
int64 winux::StrToInt64 ( XString< char > const &  numStr,
int  ibase 
)
template<>
int64 winux::StrToInt64 ( XString< wchar > const &  numStr,
int  ibase 
)
template<>
int64 winux::StrToInt64 ( XString< char16 > const &  numStr,
int  ibase 
)
template<>
int64 winux::StrToInt64 ( XString< char32 > const &  numStr,
int  ibase 
)
int64 winux::StrToInt64 ( AnsiString const &  numStr,
int  ibase 
)
inline

在文件 strings.hpp416 行定义.

template<typename _ChTy >
uint64 winux::StrToUInt64 ( XString< _ChTy > const &  numStr,
int  ibase 
)
template<>
uint64 winux::StrToUInt64 ( XString< char > const &  numStr,
int  ibase 
)
template<>
uint64 winux::StrToUInt64 ( XString< wchar > const &  numStr,
int  ibase 
)
template<>
uint64 winux::StrToUInt64 ( XString< char16 > const &  numStr,
int  ibase 
)
template<>
uint64 winux::StrToUInt64 ( XString< char32 > const &  numStr,
int  ibase 
)
uint64 winux::StrToUInt64 ( AnsiString const &  numStr,
int  ibase 
)
inline

在文件 strings.hpp433 行定义.

template<typename _ChTy >
XString<_ChTy> winux::AddSlashes ( XString< _ChTy > const &  str,
XString< _ChTy > const &  charlist 
)
inline
template<>
XString<char> winux::AddSlashes ( XString< char > const &  str,
XString< char > const &  charlist 
)
template<>
XString<wchar> winux::AddSlashes ( XString< wchar > const &  str,
XString< wchar > const &  charlist 
)
template<>
XString<char16> winux::AddSlashes ( XString< char16 > const &  str,
XString< char16 > const &  charlist 
)
template<>
XString<char32> winux::AddSlashes ( XString< char32 > const &  str,
XString< char32 > const &  charlist 
)
AnsiString winux::AddSlashes ( AnsiString const &  str,
AnsiString const &  charlist 
)
inline

加反斜杠

在文件 strings.hpp451 行定义.

template<typename _ChTy >
XString<_ChTy> winux::AddCSlashes ( XString< _ChTy > const &  str)
inline

在文件 strings.hpp456 行定义.

AnsiString winux::AddCSlashes ( AnsiString const &  str)
inline

加C-Style反斜杠

在文件 strings.hpp461 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StripSlashes ( XString< _ChTy > const &  str,
XString< _ChTy > const &  charlist 
)
template<>
XString<char> winux::StripSlashes ( XString< char > const &  str,
XString< char > const &  charlist 
)
template<>
XString<wchar> winux::StripSlashes ( XString< wchar > const &  str,
XString< wchar > const &  charlist 
)
template<>
XString<char16> winux::StripSlashes ( XString< char16 > const &  str,
XString< char16 > const &  charlist 
)
template<>
XString<char32> winux::StripSlashes ( XString< char32 > const &  str,
XString< char32 > const &  charlist 
)
AnsiString winux::StripSlashes ( AnsiString const &  str,
AnsiString const &  charlist 
)
inline

去掉反斜杠

在文件 strings.hpp479 行定义.

template<typename _ChTy >
XString<_ChTy> winux::StripCSlashes ( XString< _ChTy > const &  str)
inline

在文件 strings.hpp484 行定义.

AnsiString winux::StripCSlashes ( AnsiString const &  str)
inline

去掉C-Style反斜杠

在文件 strings.hpp489 行定义.

template<typename _ChTy >
XString<_ChTy> winux::AddQuotes ( XString< _ChTy > const &  str,
_ChTy  quote = Literal< _ChTy >::quoteChar 
)
template<>
XString<char> winux::AddQuotes ( XString< char > const &  str,
char  quote 
)
template<>
XString<wchar> winux::AddQuotes ( XString< wchar > const &  str,
wchar  quote 
)
template<>
XString<char16> winux::AddQuotes ( XString< char16 > const &  str,
char16  quote 
)
template<>
XString<char32> winux::AddQuotes ( XString< char32 > const &  str,
char32  quote 
)
AnsiString winux::AddQuotes ( AnsiString const &  str,
AnsiString::value_type  quote = Literal<AnsiString::value_type>::quoteChar 
)
inline

double引号

在文件 strings.hpp507 行定义.

template<typename _ChTy >
bool winux::StrGetLine ( XString< _ChTy > *  line,
XString< _ChTy > const &  str,
size_t *  i,
XString< _ChTy > *  nl = nullptr 
)
template<>
bool winux::StrGetLine ( XString< char > *  line,
XString< char > const &  str,
size_t *  i,
XString< char > *  nl 
)
template<>
bool winux::StrGetLine ( XString< wchar > *  line,
XString< wchar > const &  str,
size_t *  i,
XString< wchar > *  nl 
)
template<>
bool winux::StrGetLine ( XString< char16 > *  line,
XString< char16 > const &  str,
size_t *  i,
XString< char16 > *  nl 
)
template<>
bool winux::StrGetLine ( XString< char32 > *  line,
XString< char32 > const &  str,
size_t *  i,
XString< char32 > *  nl 
)
bool winux::StrGetLine ( AnsiString line,
AnsiString const &  str,
size_t *  i,
AnsiString nl = nullptr 
)
inline

获取字符串中的一行。支持unix,windows,mac平台的行分隔方式

参数
line获取到的一行字符串。如果nl!=nullptr则不包含换行符,反之则包含。
str要处理的字符串。
i指示起始位置,并返回处理到哪个位置。
nl如果nl!=nullptr则line不包含换行符,反之则包含。

如何统一处理3平台的文本文件:
最好的办法是在该平台用文本模式打开该平台产生的文本文件,然后操作。
然而,现实不像想象的那么美好,多数情况下是处理不同平台下的文本文件,譬如在unix系平台下处理windows或mac的文本文件。
由于行分隔不同,导致处理有一定困难。
此函数正为此而存在。首先,你需要用二进制模式打开文件,然后读取全部数据,调用此函数取行即可。

在文件 strings.hpp536 行定义.

template<typename _ChTy >
bool winux::StrGetLine ( XString< _ChTy > *  line,
_ChTy const *  str,
size_t  len,
size_t *  i,
XString< _ChTy > *  nl = nullptr 
)
template<>
bool winux::StrGetLine ( XString< char > *  line,
char const *  str,
size_t  len,
size_t *  i,
XString< char > *  nl 
)
template<>
bool winux::StrGetLine ( XString< wchar > *  line,
wchar const *  str,
size_t  len,
size_t *  i,
XString< wchar > *  nl 
)
template<>
bool winux::StrGetLine ( XString< char16 > *  line,
char16 const *  str,
size_t  len,
size_t *  i,
XString< char16 > *  nl 
)
template<>
bool winux::StrGetLine ( XString< char32 > *  line,
char32 const *  str,
size_t  len,
size_t *  i,
XString< char32 > *  nl 
)
bool winux::StrGetLine ( AnsiString line,
AnsiString::value_type const *  str,
size_t  len,
size_t *  i,
AnsiString nl = nullptr 
)
inline

获取字符串中的一行。支持unix,windows,mac平台的行分隔方式

参数
line获取到的一行字符串。如果nl!=nullptr则不包含换行符,反之则包含。
str要处理的字符串。
len字符串长度。
i指示起始位置,并返回处理到哪个位置。
nl如果nl!=nullptr则line不包含换行符,反之则包含。

如何统一处理3平台的文本文件:
最好的办法是在该平台用文本模式打开该平台产生的文本文件,然后操作。
然而,现实不像想象的那么美好,多数情况下是处理不同平台下的文本文件,譬如在unix系平台下处理windows或mac的文本文件。
由于行分隔不同,导致处理有一定困难。
此函数正为此而存在。首先,你需要用二进制模式打开文件,然后读取全部数据,调用此函数取行即可。

在文件 strings.hpp566 行定义.

template<typename _ChTy >
void winux::GetLineByPos ( XString< _ChTy > const &  content,
ssize_t  pos,
ssize_t lineHead,
ssize_t lineTail,
XString< _ChTy > *  line = nullptr 
)

获取指定位置的行内容

参数
content内容
pos位置索引
lineHead返回line开头索引
lineTail返回line尾部索引(+1则是END位置)
line返回line
template<>
void winux::GetLineByPos ( XString< char > const &  content,
ssize_t  pos,
ssize_t lineHead,
ssize_t lineTail,
XString< char > *  line 
)
template<>
void winux::GetLineByPos ( XString< wchar > const &  content,
ssize_t  pos,
ssize_t lineHead,
ssize_t lineTail,
XString< wchar > *  line 
)
template<>
void winux::GetLineByPos ( XString< char16 > const &  content,
ssize_t  pos,
ssize_t lineHead,
ssize_t lineTail,
XString< char16 > *  line 
)
template<>
void winux::GetLineByPos ( XString< char32 > const &  content,
ssize_t  pos,
ssize_t lineHead,
ssize_t lineTail,
XString< char32 > *  line 
)
template<typename _ChTy >
XString<_ChTy> winux::CollateIdentifierToString ( XString< _ChTy > const &  identifier,
XString< _ChTy > const &  sep,
winux::uint  flags = wordFirstCharUpper 
)
template<>
XString<char> winux::CollateIdentifierToString ( XString< char > const &  identifier,
XString< char > const &  sep,
winux::uint  flags 
)
template<>
XString<wchar> winux::CollateIdentifierToString ( XString< wchar > const &  identifier,
XString< wchar > const &  sep,
winux::uint  flags 
)
template<>
XString<char16> winux::CollateIdentifierToString ( XString< char16 > const &  identifier,
XString< char16 > const &  sep,
winux::uint  flags 
)
template<>
XString<char32> winux::CollateIdentifierToString ( XString< char32 > const &  identifier,
XString< char32 > const &  sep,
winux::uint  flags 
)
AnsiString winux::CollateIdentifierToString ( AnsiString const &  identifier,
AnsiString const &  sep,
winux::uint  flags = wordFirstCharUpper 
)
inline

整理标识符为字符串

在文件 strings.hpp619 行定义.

template<typename _ChTy >
XStringArray<_ChTy> winux::CollateIdentifierToArray ( XString< _ChTy > const &  identifier,
winux::uint  flags = wordFirstCharUpper 
)
template<>
XStringArray<char> winux::CollateIdentifierToArray ( XString< char > const &  identifier,
winux::uint  flags 
)
template<>
XStringArray<wchar> winux::CollateIdentifierToArray ( XString< wchar > const &  identifier,
winux::uint  flags 
)
template<>
XStringArray<char16> winux::CollateIdentifierToArray ( XString< char16 > const &  identifier,
winux::uint  flags 
)
template<>
XStringArray<char32> winux::CollateIdentifierToArray ( XString< char32 > const &  identifier,
winux::uint  flags 
)
AnsiStringArray winux::CollateIdentifierToArray ( AnsiString const &  identifier,
winux::uint  flags = wordFirstCharUpper 
)
inline

整理标识符为单词数组

在文件 strings.hpp637 行定义.

template<typename _IndexType , typename _ChTy >
static std::vector<_IndexType> winux::_Templ_KmpCalcNext ( _ChTy const *  substr,
size_t  sublen 
)
inlinestatic

KMP匹配算法:求子串next值

在文件 strings.hpp643 行定义.

template<typename _IndexType , typename _ChTy >
static size_t winux::_Templ_KmpMatchEx ( _ChTy const *  str,
size_t  len,
_ChTy const *  substr,
size_t  sublen,
size_t  pos,
std::vector< _IndexType > const &  next 
)
inlinestatic

KMP匹配算法:传入已经求好的next进行匹配

在文件 strings.hpp669 行定义.

template<typename _IndexType , typename _ChTy >
static size_t winux::_Templ_KmpMatch ( _ChTy const *  str,
size_t  len,
_ChTy const *  substr,
size_t  sublen,
size_t  pos 
)
inlinestatic

KMP匹配算法:匹配

在文件 strings.hpp697 行定义.

template<typename _ChTy >
std::vector<int> winux::KmpCalcNext ( _ChTy const *  substr,
size_t  sublen 
)
inline

KMP字符串匹配算法:求子串next值

在文件 strings.hpp704 行定义.

template<typename _ChTy >
size_t winux::KmpMatchEx ( _ChTy const *  str,
size_t  len,
_ChTy const *  substr,
size_t  sublen,
size_t  pos,
std::vector< int > const &  next 
)
inline

KMP字符串匹配算法:传入已经求好的next进行匹配

在文件 strings.hpp710 行定义.

template<typename _ChTy >
size_t winux::KmpMatch ( _ChTy const *  str,
size_t  len,
_ChTy const *  substr,
size_t  sublen,
size_t  pos 
)
inline

KMP字符串匹配算法:匹配

在文件 strings.hpp716 行定义.

size_t winux::LocalCharsCount ( AnsiString const &  local)

返回一个本地字符串里有多少个实际的字符(by local CodePage),用于mbstowcs

size_t winux::UnicodeMinLength ( UnicodeString const &  unicode)

返回一个unicode字符串转换为多字节字符串最少需要多少字节(by local CodePage),用于wcstombs

AnsiString winux::UnicodeToLocal ( UnicodeString const &  unicode)

Unicode转换到本地Ansi.

UnicodeString winux::LocalToUnicode ( AnsiString const &  local)

本地Ansi转到Unicode

String winux::LocalToString ( AnsiString const &  local)

兼容字符串与Unicode、Local字符串相互转换

String winux::UnicodeToString ( UnicodeString const &  unicode)

兼容字符串与Unicode、Local字符串相互转换

AnsiString winux::StringToLocal ( String const &  str)

兼容字符串与Unicode、Local字符串相互转换

UnicodeString winux::StringToUnicode ( String const &  str)

兼容字符串与Unicode、Local字符串相互转换

AnsiString winux::FormatExVA ( size_t  cch,
char const *  fmt,
va_list  args 
)
UnicodeString winux::FormatExVW ( size_t  cch,
wchar const *  fmt,
va_list  args 
)
AnsiString winux::FormatExA ( size_t  cch,
char const *  fmt,
  ... 
)
UnicodeString winux::FormatExW ( size_t  cch,
wchar const *  fmt,
  ... 
)
AnsiString winux::FormatA ( char const *  fmt,
  ... 
)
UnicodeString winux::FormatW ( wchar const *  fmt,
  ... 
)
AnsiString winux::FormatExV ( size_t  cch,
char const *  fmt,
va_list  args 
)
inline

格式化字符串0

在文件 strings.hpp976 行定义.

AnsiString winux::FormatEx ( size_t  cch,
char const *  fmt,
  ... 
)

格式化字符串1

AnsiString winux::Format ( char const *  fmt,
  ... 
)

格式化字符串2

template<typename _CHAR , uint _Count>
SZInput winux::SZ ( _CHAR(&)  sz[_Count])

VC2010以上支持模板取数组大小

在文件 strings.hpp1005 行定义.

static AnsiString winux::LocalFromUtf8 ( AnsiString const &  str)
inlinestatic

从utf-8转到本地编码

在文件 strings.hpp1155 行定义.

static AnsiString winux::LocalToUtf8 ( AnsiString const &  str)
inlinestatic

从本地编码转到utf-8

在文件 strings.hpp1157 行定义.

uint winux::GetPid ( void  )

获取当前进程ID

uint winux::GetTid ( void  )

获取当前线程ID

size_t winux::CommandLineToArgvA ( AnsiString const &  cmd,
AnsiStringArray argv 
)
size_t winux::CommandLineToArgvW ( UnicodeString const &  cmd,
UnicodeStringArray argv 
)
size_t winux::CommandLineToArgv ( AnsiString const &  cmd,
AnsiStringArray argv 
)
inline

把命令行解析成Argv数组。不支持命令行& && | ||

参数
cmd命令行,不支持命令行& && | ||
argv输出解析到的参数
返回
解析到的参数个数

在文件 system.hpp44 行定义.

HProcess winux::ExecCommandEx ( String const &  cmd,
HPipe hStdinWritePipe,
HPipe hStdoutReadPipe,
HPipe hStderrReadPipe = NULL,
bool  closeStdinIfStdinWritePipeIsNull = true 
)

新建子进程执行指定命令,并用管道重定向了标准设备

参数
cmd要运行的程序和命令,如果是内置命令则需要加上cmd.exe或bash等可执行文件名在前
hStdinWritePipeSTDIN的写端管道,如果传入变量接收这个句柄则表示重定向标准输入,如果不想重定向则传入nullptr
hStdoutReadPipeSTDOUT的读端管道,如果传入变量接收这个句柄则表示重定向标准输出,如果不想重定向则传入nullptr
hStderrReadPipeSTDERR的读端管道,如果传入变量接收这个句柄则表示重定向标准错误,如果不想重定向则传入nullptr
closeStdinIfStdinWritePipeIsNull指示当不准备重定向标准输入时是否关闭它,这样子进程就不会等待输入而卡死
返回
HProcess 子进程的进程句柄
int winux::ExecCommand ( String const &  cmd,
String const &  stdinStr,
String stdoutStr,
String stderrStr = NULL,
bool  closeStdinIfStdinStrEmpty = true 
)

新建子进程执行指定命令,等待子进程结束,并把字符串重定向了标准设备

参数
cmd要运行的程序和命令,如果是内置命令则需要加上cmd.exe或bash等可执行文件名在前
stdinStr要传入标准输入的内容,如果为空串则不重定向标准输入
stdoutStr要读取的标准输出的内容,如果为空则不重定向标准输出
stderrStr要读取的标准错误的内容,如果为空则不重定向标准错误
closeStdinIfStdinStrEmpty指示当不准备重定向标准输入时是否关闭它,这样子进程就不会等待输入而卡死
返回
int 子进程main()的返回值,Linux上此值仅为0~255
String winux::GetExec ( String const &  cmd,
String const &  stdinStr = $T(""),
String stderrStr = NULL,
bool  closeStdinIfStdinStrEmpty = true 
)

执行命令,返回标准输出内容

参数
cmd要运行的程序和命令,如果是内置命令则需要加上cmd.exe或bash等可执行文件名在前
stdinStr要传入标准输入的内容,如果为空串则不重定向标准输入
stderrStr要读取的标准错误的内容,如果为空则不重定向标准错误
closeStdinIfStdinStrEmpty指示当不准备重定向标准输入时是否关闭它,这样子进程就不会等待输入而卡死
返回
String 标准输出的内容
static ulong winux::GetSecondsFromWeeks ( int  weeks)
inlinestatic

获取几周是多少秒

在文件 time.hpp10 行定义.

static ulong winux::GetSecondsFromDays ( int  days)
inlinestatic

获取几天是多少秒

在文件 time.hpp12 行定义.

static ulong winux::GetSecondsFromHours ( int  hours)
inlinestatic

获取几小时是多少秒

在文件 time.hpp14 行定义.

static ulong winux::GetSecondsFromMinutes ( int  minutes)
inlinestatic

获取几分钟是多少秒

在文件 time.hpp16 行定义.

std::ostream& winux::operator<< ( std::ostream &  o,
DateTimeL const &  dt 
)
std::wostream& winux::operator<< ( std::wostream &  o,
DateTimeL const &  dt 
)
uint64 winux::GetUtcTimeMs ( void  )

获取UTC时间毫秒数,UTC秒数可以直接除以1000,或者调用CRT的time(NULL)

uint64 winux::GetUtcTimeUs ( void  )

获取UTC时间微秒数,UTC秒数可以直接除以1000000,或者调用CRT的time(NULL)

time_t winux::GetUtcTime ( void  )

获取UTC时间秒数,或者调用CRT的time(NULL)

template<typename _Ty >
RefParam<_Ty> winux::Ref ( _Ty &  r)
inline

向模板参数传递引用型参数

在文件 utilities.hpp331 行定义.

template<typename _Fx , typename... _ArgType>
RunableT< _Fx, std::tuple< typename std::decay<_ArgType>::type... > >* winux::NewRunable ( _Fx  fn,
_ArgType &&...  arg 
)

创建一个Runable对象

参数
fn执行函数。可以是普通函数,成员函数,lambda表达式。
arg...传递的参数。内部会使用tuple保存参数的副本(会存在一个实际的同类型对象)。所以要想不进行值拷贝构造,可以使用std::ref()保存引用包装对象,或者使用std::move()触发移动构造。

在文件 utilities.hpp119 行定义.

template<typename _Fx , typename... _ArgType>
Invoker<_Fx>* winux::NewInvoker ( _Fx  fn,
_ArgType &&...  arg 
)

在文件 utilities.hpp143 行定义.

template<typename _KTy , typename _VTy , typename _Pr , typename _Alloc >
MapAssigner< _KTy, _VTy, _Pr, _Alloc > winux::Assign ( std::map< _KTy, _VTy, _Pr, _Alloc > *  m)
inline

给容器赋值

在文件 utilities.hpp413 行定义.

template<typename _Ty , typename _Alloc >
ArrayAssigner<_Ty, _Alloc> winux::Assign ( std::vector< _Ty, _Alloc > *  a)
inline

给容器赋值

在文件 utilities.hpp420 行定义.

template<typename _ChTy , typename = CharTypeConstrain<_ChTy>>
static size_t winux::StrLen ( _ChTy const *  str)
inlinestatic

计算字符串长度

在文件 utilities.hpp640 行定义.

template<typename _Ty >
static _Ty winux::InvertByteOrder ( _Ty  v)
inlinestatic

反转字节序。_Ty必须是基本数字类型

在文件 utilities.hpp649 行定义.

template<typename _Ty >
static void winux::InvertByteOrderArray ( _Ty *  p,
size_t  count 
)
inlinestatic

反转字节序。_Ty必须是基本数字类型

在文件 utilities.hpp658 行定义.

void winux::InvertByteOrder ( void *  buf,
size_t  size 
)

反转字节序

static bool winux::IsLittleEndian ( )
inlinestatic

判断编译环境是否为小端序

在文件 utilities.hpp670 行定义.

static bool winux::IsBigEndian ( )
inlinestatic

判断编译环境是否为大端序

在文件 utilities.hpp677 行定义.

int winux::MemoryCompare ( void const *  buf1,
size_t  n1,
void const *  buf2,
size_t  n2 
)

内存比较

int winux::MemoryCompareI ( void const *  buf1,
size_t  n1,
void const *  buf2,
size_t  n2 
)

内存比较(不区分大小写)

template<typename _ChTy >
static int winux::StringCompare ( XString< _ChTy > const &  str1,
XString< _ChTy > const &  str2 
)
inlinestatic

字符串比较

在文件 utilities.hpp691 行定义.

template<typename _ChTy >
static int winux::StringCompareI ( XString< _ChTy > const &  str1,
XString< _ChTy > const &  str2 
)
inlinestatic

字符串(大小写无关)比较

在文件 utilities.hpp704 行定义.

template<typename _Ty >
static bool winux::ArrayLess ( _Ty const *  arr1,
size_t  count1,
_Ty const *  arr2,
size_t  count2 
)
inlinestatic

array less

在文件 utilities.hpp717 行定义.

template<typename _Ty >
static bool winux::ArrayGreater ( _Ty const *  arr1,
size_t  count1,
_Ty const *  arr2,
size_t  count2 
)
inlinestatic

array greater

在文件 utilities.hpp737 行定义.

template<typename _Ty >
static bool winux::ArrayEqual ( _Ty const *  arr1,
size_t  count1,
_Ty const *  arr2,
size_t  count2 
)
inlinestatic

array equal

在文件 utilities.hpp757 行定义.

template<typename _Ty >
static bool winux::ArrayLess ( std::vector< _Ty > const &  arr1,
std::vector< _Ty > const &  arr2 
)
inlinestatic

array less

在文件 utilities.hpp769 行定义.

template<typename _Ty >
static bool winux::ArrayGreater ( std::vector< _Ty > const &  arr1,
std::vector< _Ty > const &  arr2 
)
inlinestatic

array less

在文件 utilities.hpp778 行定义.

template<typename _Ty >
static bool winux::ArrayEqual ( std::vector< _Ty > const &  arr1,
std::vector< _Ty > const &  arr2 
)
inlinestatic

array equal

在文件 utilities.hpp787 行定义.

bool winux::CollectionLess ( Collection const &  coll1,
Collection const &  coll2 
)

collection less

bool winux::CollectionGreater ( Collection const &  coll1,
Collection const &  coll2 
)

collection greater

bool winux::CollectionEqual ( Collection const &  coll1,
Collection const &  coll2 
)

collection equal

template<typename _MAP , typename _KEY >
bool winux::isset ( _MAP const &  m,
_KEY const &  k 
)
inline

检测map中是否有该键的值

在文件 utilities.hpp807 行定义.

template<typename _Ty >
std::vector<_Ty> winux::ToArray ( _Ty *  arr,
uint  count 
)
inline

将C数组转换成vector

在文件 utilities.hpp814 行定义.

template<typename _Ty , uint _Count>
std::vector<_Ty> winux::ToArray ( _Ty(&)  arr[_Count])
inline

在文件 utilities.hpp820 行定义.

template<typename _Fx , typename... _ArgType>
int winux::VoidReturnInt ( _Fx  fn,
_ArgType &&...  arg 
)
inline

调用一个返回void的函数或函数对象,返回一个数字

通常是为了在初始化语句中方便调用返回void的函数

在文件 utilities.hpp829 行定义.

bool winux::ValueIsInArray ( StringArray const &  arr,
String const &  val,
bool  caseInsensitive = false 
)

判断一个字符串值是否在一个字符串数组里,默认大小写敏感

int winux::Random ( int  n1,
int  n2 
)

随机数,随机产生n1~n2的数字. 包括n1,n2本身

bool winux::ParseBool ( AnsiString const &  str,
bool *  boolVal 
)

parse bool

bool winux::ParseBool ( UnicodeString const &  str,
bool *  boolVal 
)

parse bool

bool winux::ParseInt ( AnsiString const &  str,
int *  iVal 
)

parse int

bool winux::ParseInt ( UnicodeString const &  str,
int *  iVal 
)

parse int

bool winux::ParseUInt ( AnsiString const &  str,
uint uiVal 
)

parse uint

bool winux::ParseUInt ( UnicodeString const &  str,
uint uiVal 
)

parse uint

bool winux::ParseLong ( AnsiString const &  str,
long *  lVal 
)

parse long

bool winux::ParseLong ( UnicodeString const &  str,
long *  lVal 
)

parse long

bool winux::ParseULong ( AnsiString const &  str,
ulong ulVal 
)

parse ulong

bool winux::ParseULong ( UnicodeString const &  str,
ulong ulVal 
)

parse ulong

bool winux::ParseInt64 ( AnsiString const &  str,
int64 i64Val 
)

parse int64

bool winux::ParseInt64 ( UnicodeString const &  str,
int64 i64Val 
)

parse int64

bool winux::ParseUInt64 ( AnsiString const &  str,
uint64 ui64Val 
)

parse uint64

bool winux::ParseUInt64 ( UnicodeString const &  str,
uint64 ui64Val 
)

parse uint64

bool winux::ParseFloat ( AnsiString const &  str,
float *  fltVal 
)

parse float

bool winux::ParseFloat ( UnicodeString const &  str,
float *  fltVal 
)

parse float

bool winux::ParseDouble ( AnsiString const &  str,
double *  dblVal 
)

parse double

bool winux::ParseDouble ( UnicodeString const &  str,
double *  dblVal 
)

parse double

static int winux::BufferCompare ( Buffer const &  buf1,
Buffer const &  buf2 
)
inlinestatic

memcmp()

在文件 utilities.hpp1170 行定义.

static int winux::BufferCompareI ( Buffer const &  buf1,
Buffer const &  buf2 
)
inlinestatic

memicmp()

在文件 utilities.hpp1176 行定义.

AnsiString const& winux::TypeStringA ( Mixed const &  v)

输出Mixed类型的字符串表示

UnicodeString const& winux::TypeStringW ( Mixed const &  v)

输出Mixed类型的字符串表示

std::ostream& winux::operator<< ( std::ostream &  o,
Mixed const &  m 
)

扩展iostream的<<

std::wostream& winux::operator<< ( std::wostream &  o,
Mixed const &  m 
)

变量说明

String const winux::DirSep_WIN = $T("\\")

Windows目录分割符

在文件 filesys.hpp17 行定义.

String const winux::LineSep_WIN = $T("\r\n")

Windows行分割符

在文件 filesys.hpp18 行定义.

String const winux::PathEnvSep_WIN = $T(";")

Windows PATH环境变量路径分割符

在文件 filesys.hpp19 行定义.

String const winux::DirSep_UNIX = $T("/")

Unix目录分割符

在文件 filesys.hpp20 行定义.

String const winux::LineSep_UNIX = $T("\n")

Unix行分割符

在文件 filesys.hpp21 行定义.

String const winux::PathEnvSep_UNIX = $T(":")

Unix PATH环境变量路径分割符

在文件 filesys.hpp22 行定义.

String const winux::DirSep_DARWIN = $T("/")

Apple系统目录分割符

在文件 filesys.hpp23 行定义.

String const winux::LineSep_DARWIN = $T("\r")

Apple系统行分割符

在文件 filesys.hpp24 行定义.

String const winux::PathEnvSep_DARWIN = $T(":")

Apple系统PATH环境变量路径分割符

在文件 filesys.hpp25 行定义.

String const winux::DirSep = $T("/")

目录分割符

在文件 filesys.hpp36 行定义.

String const winux::LineSep = $T("\n")

行分割符

在文件 filesys.hpp37 行定义.

String const winux::PathEnvSep = $T(":")

PATH环境变量路径分割符

在文件 filesys.hpp38 行定义.

constexpr size_t const winux::npos = static_cast<size_t>(-1)
static

非位置,值为-1。

在文件 utilities.hpp285 行定义.

Mixed const winux::mxNull

Mixed(MT_NULL)常量对象