zoukankan      html  css  js  c++  java
  • win32中的常用类型转换

    1、win32中关于char* 的类型

    win32中:

    const char*====LPCTSTR    (Long Ptr const tchar )就是不能修改执行的值的内容

    char *=====LPSTR

    在win32中可以使用它们的等价代替者,这里的每个字符是占8位的

    LPWSTR和LPCWSTR就是相对于上边两个指针来说的,但是每个字符占据16位,是宽字符,即w_char

    CString中的字符就是这种宽字符

    #ifdef _UNICODE

         typedef const wchar_t *  LPCTSTR

    #else

        typedef const char * LPCTSTR

    #endif

    2、常用类型转换

      从一些类型的变量中获取指向其字符串的指针

      (1)从CString中获得指针:(LPSTR)(LPCTSTR)str;//str是CString类型

      (2)从_variant_t中获得指针:_com_util::ConvertBSTRTOString((_bstr_t)vl);//vl是_variant_t类型

     字符串转化为其他类型:atoi、atol、atof

     其他类型转化为CString,使用CString的Format函数来转换

      str.fromat(“%d”,i)//int转化为CString

    3、消息处理中经常将WPARAM或LPARAM32位数据分解为两个16位(WORD)

    使用:LOWORD、HIWORD

     或者将16位(WORD)分解为高低两个8位(BYTE)

    使用LOBYTE、HIBYTE

    4、CString转化为char*:

       (1)使用GetBuffer(),之后要立即调用ReleaseBuffer

      因为GetBuffer时新分配了空间,调用ReleaseBuffer的作用是使新分配空间的有效数据区动态保存起来,

      这样下次另一个CString再使用GetBuffer时不会冲掉上个的空间的有效长度

        (2)使用memcpy

         (3)使用LPCTSTR强制转换

    CString类型转化为char[]:使用sprintf(char[],"%s",(LPCSTR)CString)

                                       或者使用strcpy

  • 相关阅读:
    R-FCN、SSD、YOLO2、faster-rcnn和labelImg实验笔记
    yolov3的anchor机制与损失函数详解
    CV资料推荐
    测试用例设计方法总结
    测试需求分析
    bug生命周期
    linux命令一
    linux 命令二
    linux 命令三
    mysql数据库和禅道安装
  • 原文地址:https://www.cnblogs.com/beijixing135132/p/3249004.html
Copyright © 2011-2022 走看看