下载地址: 本地下载
近半年来又开始用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