• 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

  • 相关阅读:
    C语言 弹跳小球
    selenium 相关操作
    aiohttp 多任务异步协程
    39 数据库索引
    36 数据库 库表行增删改查 枚举 集合
    07 线程池回调函数
    06 gevent版真正的协程
    05 greenlet版协程
    03 线程池
    04 生成器版协程
  • 原文地址:https://www.cnblogs.com/beijixing135132/p/3249004.html
Copyright © 2020-2023  润新知