一个简单的Convert类的实现(VC++)

本文介绍了作者为VC++编写的类似.NET Convert类的一个简单类型转换类,包括浮点数、字节、空值和缓冲区的转换,并带有基本的异常处理。作者欢迎反馈和建议,以完善这个开源工具类。
摘要由CSDN通过智能技术生成

 下载地址: 本地下载

     近半年来又开始用VC++了.虽然不再像刚开始学VC那会对各种类型和宏很眼晕,但类型转换的时候也感觉很不舒服,于是仿照.NET的Convert类.写了这样一个简单的类型转换类.并加上了一点简单的异常处理.本人水平有限,希望老鸟们不要笑话我,并且能不吝指正我错误的地方.另外.这个类是我刚写完的.还没有进行完整的测试.也请大家帮我测测. 并帮我添加一下我没有想到的成员函数,然后联系我.我再把大家的想法发上来.最终.我想做出一个开源的,对大家项目都有帮助的类型转换类.

   如下.这是GFX_Convert.h文件.(GFX,是我的字句缩写.为区别别的类名的前缀.也给自己点纪念^_^)

其中,ToCharPointer 和 ToBSTR 函数的结果.请调用FreeCharPointer 和 FreeBSTR来进行释放.否则,会造成内存泄露.

 


#pragma  once

#include 
" GFX_ConvertException.h "



class  GFX_Convert
{
public :
    GFX_Convert(){}
    
~ GFX_Convert(){}
    
    
static  CTime ToCTime(LPCTSTR value);
    
static  CTime ToCTime(BYTE *  value);
    
static  CTime ToCTime(CString value);
    
static  CTime ToCTime(BSTR value);

    
static   int  ToInt(LPCTSTR value);
    
static   int  ToInt(BYTE *  value);
    
static   int  ToInt(CString value);
    
static   int  ToInt(BSTR value);

    
static   float  ToFloat(LPCTSTR value);
    
static   float  ToFloat(BYTE *  value);
    
static   float  ToFloat(CString value);
    
static   float  ToFloat(BSTR value);

    
static   double  ToDouble(LPCTSTR value);
    
static   double  ToDouble(BYTE *  value);
    
static   double  ToDouble(CString value);
    
static   double  ToDouble(BSTR value);

    
static  CString ToCString(LPCTSTR value);
    
static  CString ToCString( int  value);
    
static  CString ToCString( float  value);
    
static  CString ToCString( double  value);
    
static  CString ToCString(BSTR value);
    
static  CString ToCString(CTime value);
    
static  CString ToCString(LPCWSTR value);

    
/*  ToWideChar(LPWSTR) Must be used  */
    
static  LPWSTR ToWideChar(CString value);
    
static  LPWSTR ToWideChar(BSTR value);
    
static  LPWSTR ToWideChar(LPCTSTR value);
    
static  BOOL FreeWideChar(LPWSTR value);

    
/*  FreeCharPointer(LPCTSTR) Must be used  */
    
static  LPTSTR ToCharPointer(CString value);
    
static  LPTSTR ToCharPointer( int  value);
    
static  LPTSTR ToCharPointer( float  value);
    
static  LPTSTR ToCharPointer( double  value);
    
static  LPTSTR ToCharPointer(BSTR value);
    
static  BOOL FreeCharPointer(LPTSTR value);

    
/*  FreeBSTR(BSTR) Must be used  */
    
static  BSTR ToBSTR(CString value);
    
static  BSTR ToBSTR( int  value);
    
static  BSTR ToBSTR( float  value);
    
static  BSTR ToBSTR( double  value);
    
static  BSTR ToBSTR(LPCTSTR value);
    
static  BOOL FreeBSTR(BSTR value);

private :
    
static   void  ThrowException(CString csError);
};

 

 如下是.GFX_Convert.cpp.实现文件.

 


#include 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值