VC常用数据类型使用转换

2016-02-19 19:01 1 1 收藏

想要天天向上,就要懂得享受学习。图老师为大家推荐VC常用数据类型使用转换,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

【 tulaoshi.com - 编程语言 】

一、其它数据类型转换为字符串

短整型(int)
       itoa(i,temp,10);     //将i转换为字符串放入temp中,最后一个数字表示十进制
       itoa(i,temp,2);      //按二进制方式转换
长整型(long)
       ltoa(l,temp,10);

二、从其它包含字符串的变量中获取指向该字符串的指针

CString变量
        str = "2008北京奥运";
        buf = (LPSTR)(LPCTSTR)str;
BSTR类型的_variant_t变量
        v1 = (_bstr_t)"程序员";
       buf = _com_util::ConvertBSTRToString((_bstr_t)v1);

三、字符串转换为其它数据类型

strcpy(temp,"123"); 

短整型(int)
      i = atoi(temp);
长整型(long)
      l = atol(temp);
浮点(double)
      d = atof(temp);

四、其它数据类型转换到CString

使用CString的成员函数Format来转换,

例如:整数(int)
      str.Format("%d",i);
字符串指针(char *)等已经被CString构造函数支持的数据类型可以直接赋值
      str = username;

五、BSTR、_bstr_t与CComBSTR

CComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

char *转换到BSTR可以这样: BSTR b=_com_util::ConvertStringToBSTR("数据"); //使用前需要加上头文件comutil.h
反之可以使用char *p=_com_util::ConvertBSTRToString(b);

六、VARIANT 、_variant_t 与 COleVariant

对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,例如:
      VARIANT va;
      int a=2001;
      va.vt=VT_I4;    //指明整型数据
      va.lVal=a;      //赋值
对于不马上赋值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR* pvarg);进行初始化,其本质是将vt设置为VT_EMPTY
_variant_t是VARIANT的封装类,其赋值可以使用强制类型转换,其构造函数会自动处理这些数据类型。例如:
      long l=222;
      ing i=100;
      _variant_t lVal(l);
      lVal = (long)i;
COleVariant的使用与_variant_t的方法基本一样,请参考如下例子:
      COleVariant v3 = "字符串", v4 = (long)1999;
      CString str =(BSTR)v3.pbstrVal;
      long i = v4.lVal;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

七、其它

对消息的处理中我们经常需要将WPARAM或LPARAM等32位数据(DWORD)分解成两个16位数据(WORD),例如:

LPARAM lParam;
WORD loValue = LOWORD(lParam);     //取低16位
WORD hiValue = HIWORD(lParam);     //取高16位
对于16位的数据(WORD)我们可以用同样的方法分解成高低两个8位数据(BYTE),例如:
WORD wValue;
BYTE loValue = LOBYTE(wValue);     //取低8位
BYTE hiValue = HIBYTE(wValue);     //取高8位

来源:https://www.tulaoshi.com/n/20160219/1619850.html

延伸阅读
中文Access2000速成教程--1.8定义 ACCESS集锦 Access新手来看:Access的特点、概 要精通ACCESS需掌握的内容 用Access 2000进行班级管理 一篇详细讲述mysql和access区别的 中文Access2000速成教程--1.1使用 Access使用查询 Access 数据库安全攻防策略 Access命令行参数 文本 nvarchar(n) 备注 ntext 数字(长整型) int 数字(整型) smallint ...
(1)二进制数据类型 二进制数据包括 Binary、Varbinary 和 Image Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。 Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。 Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000...
Java与其他语言数据类型之间的转换方法实例程序 /** * 通信格式转换 * * Java和一些windows编程语言如c、c++、Delphi所写的网络程序进行通讯时,需要进行相应的转换 * 高、低字节之间的转换 * windows的字节序为低字节开头 * Linux,unix的字节序为高字节开头 * java则无论平台变化,都是高字节开头  ...
1、整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127)smallint(m) 2个字节 范围(-32768~32767)mediumint(m) 3个字节 范围(-8388608~8388607)int(m) 4个字节 范围(-2147483648~2147483647)bigint(m) 8个字节 范围(+-9.22*10的18次方) 取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围...
一些初学Android的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。 我们知道,android的数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又分为整型和浮点型;相对于数据类型,Java的...

经验教程

21

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部