• 注册
  • 关于作者
    企业认证:趣记站长
    关注 6 粉丝 4 喜欢 9 内容 992
    江西省·南昌市
    聊天 送礼
    • 查看作者
    • VC有数数据类型转换详解

      作者:程佩君

      刚接触VC编程的朋友每每对许多数据类型的转换以为困惑不解,本文将引见一些经常运用数据类型的运用。

      我们先定义一些有数类型变量借以说明

      int i = 100;

      long l = 2001;

      float f=300.2;

      double d=12345.119;

      char username[]="女侠程佩君";

      char temp[200];

      char *buf;

      CString str;

      _variant_t v1;

      _bstr_t v2;

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

      短整型(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);

      浮点数(float)

      str.Format("%f",i);

      字符串指针(char *)等已被CString组织函数支持的数据类型可以或许或许直接赋值

      str = username;

      五、BSTR、_bstr_t与CComBSTR

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

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

      反之可以或许或许运用char *p=_com_util::ConvertBSTRToString(b);

      六、VARIANT 、_variant_t 与 COleVariant

      VARIANT的组织可以或许或许参考头文件VC98\Include\OAIDL.H中关于组织体tagVARIANT的定义。

      关于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对团结组织中相同数据类型的变量赋值,举个例子:

      VARIANT va;

      int a=2001;

      va.vt=VT_I4;///指明整型数据

      va.lVal=a; ///赋值

      关于不立时赋值的VARIANT,

      用Delphi制作录音递次
      基于Delphi的屏幕抓图技术的实现,Delphi中数据的自动录入,Delphi编程:用流来读取TXT文件中的数据,使用Delphi创建IIS虚拟目录的方法,Delphi初学者应小心的六大陷阱,Delphi“判断服务器路径”与“清空日志文件”,利用VFW在Delphi中开发视频捕获程序,Delphi实现网页表单数据的自动提交,Delphi编程使用HOOK监视Windows,Delphi编程禁止用户关闭操作系统,Delphi中利用钩子实现QQ聊天窗口的修改,一个判断定文件是否为文本文件的函数,把Flash文件转换为Exe文件,用Delphi实现文件下载的几种方法,Delphi中保存图像列表,基于Delphi的接口编程入门,在Delphi中使用CreateOleObject方法对WORD文件进行操作,利用Delphi开发旅游景点微机售票系统,Delphi中用ICMP探测远程主机状态,Delphi7对XML的支持分析
      Delphi

      零代码生计窗口运转状态
      基于Delphi的屏幕抓图技术的完成,Delphi中数据的自动录入,Delphi编程:用流来读取TXT文件中的数据,运用Delphi竖立IIS虚拟目录的方法,Delphi初学者应小心的六大骗局,Delphi“揣摸服务器门路”与“清空日志文件”,运用VFW在Delphi中拓荒视频捕获递次,Delphi完成网页表单数据的自动提交,Delphi编程运用HOOK看守Windows,Delphi编程阻止用户关闭支配系统,Delphi中运用钩子完成QQ聊天窗口的修改,一个推推断文件是否是为文本文件的函数,把Flash文件转换为Exe文件,用Delphi完成文件下载的几种方法,Delphi中生计图象列表,基于Delphi的接口编程入门,在Delphi中运用CreateOleObject方法对WORD文件举办支配,运用Delphi拓荒旅游景点微机售票系统,Delphi中用ICMP探测远程主机状态,Delphi7对XML的支持理会
      Delphi

      最好先用Void VariantInit(VARIANTARG FAR* pvarg);举办初始化,其本质是将vt设置为VT_EMPTY,下表我们分列vt与经常运用数据的对应相干:

      unsigned char bVal; VT_UI1

      short iVal; VT_I2

      long lVal;  VT_I4   

      float fltVal;  VT_R4

      double dblVal;  VT_R8   

      VARIANT_BOOL boolVal;  VT_BOOL

      SCODE scode;  VT_ERROR

      CY cyVal;  VT_CY

      DATE date;  VT_DATE

      BSTR bstrVal;  VT_BSTR

      IUnknown FAR* punkVal;  VT_UNKNOWN

      IDispatch FAR* pdispVal;  VT_DISPATCH

      SAFEARRAY FAR* parray;  VT_ARRAY|*

      unsigned char FAR* pbVal;  VT_BYREF|VT_UI1

      short FAR* piVal;  VT_BYREF|VT_I2

      long FAR* plVal;  VT_BYREF|VT_I4

      float FAR* pfltVal;  VT_BYREF|VT_R4

      double FAR* pdblVal; VT_BYREF|VT_R8

      VARIANT_BOOL FAR* pboolVal; VT_BYREF|VT_BOOL

      SCODE FAR* pscode;  VT_BYREF|VT_ERROR

      CY FAR* pcyVal;  VT_BYREF|VT_CY

      DATE FAR* pdate; VT_BYREF|VT_DATE

      BSTR FAR* pbstrVal;  VT_BYREF|VT_BSTR

      IUnknown FAR* FAR* ppunkVal;  VT_BYREF|VT_UNKNOWN

      IDispatch FAR* FAR* ppdispVal; VT_BYREF|VT_DISPATCH

      SAFEARRAY FAR* FAR* pparray;  VT_ARRAY|*

      VARIANT FAR* pvarVal;  VT_BYREF|VT_VARIANT

      void FAR* byref;  VT_BYREF

      _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;

      七、其他

      对消息的措置责罚中我们经常需要将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位

      后记:本文逐渐写成,缺点的处所在所难免,驱逐来信指正.

      零代码生计窗口运转状态
      基于Delphi的屏幕抓图技术的完成,Delphi中数据的自动录入,Delphi编程:用流来读取TXT文件中的数据,运用Delphi竖立IIS虚拟目录的方法,Delphi初学者应小心的六大骗局,Delphi“揣摸服务器门路”与“清空日志文件”,运用VFW在Delphi中拓荒视频捕获递次,Delphi完成网页表单数据的自动提交,Delphi编程运用HOOK看守Windows,Delphi编程阻止用户关闭支配系统,Delphi中运用钩子完成QQ聊天窗口的修改,一个推推断文件是否是为文本文件的函数,把Flash文件转换为Exe文件,用Delphi完成文件下载的几种方法,Delphi中生计图象列表,基于Delphi的接口编程入门,在Delphi中运用CreateOleObject方法对WORD文件举办支配,运用Delphi拓荒旅游景点微机售票系统,Delphi中用ICMP探测远程主机状态,Delphi7对XML的支持理会
      Delphi

      用Delphi制作录音递次
      基于Delphi的屏幕抓图技术的实现,Delphi中数据的自动录入,Delphi编程:用流来读取TXT文件中的数据,使用Delphi创建IIS虚拟目录的方法,Delphi初学者应小心的六大陷阱,Delphi“判断服务器路径”与“清空日志文件”,利用VFW在Delphi中开发视频捕获程序,Delphi实现网页表单数据的自动提交,Delphi编程使用HOOK监视Windows,Delphi编程禁止用户关闭操作系统,Delphi中利用钩子实现QQ聊天窗口的修改,一个判断定文件是否为文本文件的函数,把Flash文件转换为Exe文件,用Delphi实现文件下载的几种方法,Delphi中保存图像列表,基于Delphi的接口编程入门,在Delphi中使用CreateOleObject方法对WORD文件进行操作,利用Delphi开发旅游景点微机售票系统,Delphi中用ICMP探测远程主机状态,Delphi7对XML的支持分析
      Delphi

    • 0
    • 0
    • 0
    • 83
    • 单栏布局 侧栏位置: