zoukankan      html  css  js  c++  java
  • 数据类型—C++基础篇

    1,DWORD
      32位无符号整形量  
      相当于unsigned   long/unsigned   int ,这是一个双字节长度的Byte型数据类型。即此类型的变量在内存中占用四个字节。

    2,UInt64 结构
       表示 64 位无符号整数。此结构不符合 CLS。
    UInt64 值类型表示值介于 0 到 18,446,744,073,709,551,615 之间的无符号整数。

    3,BYTE
    1 byte = 8 bit


    4,HRESULT 类型
    大多数 COM 函数以及一些接口成员函数的返回值类型均为 HRESULT 类型。HRESULT 类型的返回值反映了函数中的一些情况,其类型定义规范如下:

       31 30 29 28                    16 15                                0
      |-----|--|------------------------|-----------------------------------|

    类别码 (30-31) 反映函数调用结果:
                    00 调用成功
                    01 包含一些信息
                    10 警告
                    11 错误
    自定义标记(29) 反映结果是否为自定义标识,1 为是,0 则不是;
    操作码 (16-28) 标识结果操作来源,在 Windows 平台上,其定义如下:
                    #define FACILITY_WINDOWS         8
                    #define FACILITY_STORAGE         3
                    #define FACILITY_RPC             1
                    #define FACILITY_SSPI            9
                    #define FACILITY_WIN32           7
                    #define FACILITY_CONTROL         10
                    #define FACILITY_NULL            0
                    #define FACILITY_INTERNET        12
                    #define FACILITY_ITF             4
                    #define FACILITY_DISPATCH        2
                    #define FACILITY_CERT            11
    操作结果码(0-15) 反映操作的状态,WinError.h 定义了 Win32 函数所有可能返回结果。            

    Description:
    The   HRESULT   data   type   is   a   32-bit   value   that   is   used   to   describe   an   error   or   warning.  
       
    typedef   LONG  HRESULT;    
         
      Most   MAPI   interface   methods   and   functions   return   HRESULT   values   to   provide   detailed   result   information.   HRESULT   values   are   also   used   widely   in   OLE   interface   methods.  
       
      These   procedures   return   an   int   return   code.   The   return   code   is   0   when   successful   or   a   non-zero   HRESULT   when   an   error   occurs.   An   HRESULT   is   an   OLE   error   code   of   the   hexadecimal   form   0x800nnnnn,   but   when   it   is   returned   as   an   int   value   it   has   the   form   -214nnnnnnn. 
    以下是一些经常用到的返回值和宏定义:
    HRESULT 含义
    S_OK 0x00000000 成功
    S_FALSE 0x00000001 函数成功执行完成,但返回时出现错误
    E_INVALIDARG 0x80070057 参数有错误
    E_OUTOFMEMORY 0x8007000E 内存申请错误
    E_UNEXPECTED 0x8000FFFF 未知的异常
    E_NOTIMPL 0x80004001 未实现功能
    E_FAIL 0x80004005 没有详细说明的错误。一般需要取得 Rich Error 错误信息(注1)
    E_POINTER 0x80004003 无效的指针
    E_HANDLE 0x80070006 无效的句柄
    E_ABORT 0x80004004 终止操作
    E_ACCESSDENIED 0x80070005 访问被拒绝
    E_NOINTERFACE 0x80004002 不支持接口


    图一、HRESULT 的结构

    HRESULT 其实是一个双字节的值,其最高位(bit)如果是0表示成功,1表示错误。具体参见 MSDN 之"Structure of COM Error Codes"说明。我们在程序中如果需要判断返回值,则可以使用比较运算符号;switch开关语句;也可以使用VC提供的宏:

          HRESULT hr = 调用组件函数;
    if( SUCCEEDED( hr ) ){...} // 如果成功 ......
    if( FAILED( hr ) ){...} // 如果失败
    5,LPCTSTR
       L表示long指针,P表示这是一个指针,C表示是一个常量,STR表示字符串

       LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。
    同样, LPCSTR就只能是一个ANSI字符串, 在程序中我们大部分时间要使用带T的类型定义。LPCTSTR == const TCHAR *

  • 相关阅读:
    技能的切实掌握 必须动手
    sqlite 网址
    android视频教程
    Windows Azure
    mysql 存储过程 获取统计结果
    “道家”幸福生活的组成
    [文摘20110724]徐鹤宁 语录
    eclipse swt
    mysq 存储过程 插入测试数据
    WPF 视频教程
  • 原文地址:https://www.cnblogs.com/luyinghuai/p/1229627.html
Copyright © 2011-2022 走看看