CString VariantToString(VARIANT var);转换
Variant类型转换成CString代码
对数据库的操作常常会用Variant和_bstr_t类型,在进行MFC等程序中,通常会用到CString类。从variant转换成CString代码如下:view plaincopy to clipboardprint?
plaincopy to clipboardprint?
CString VariantToString(_variant_t var)
{
CString strValue;
_variant_t var_t;
_bstr_t bstr_t;
COleCurrency var_currency;
switch(var.vt)
{
case VT_EMPTY:
case VT_NULL:strValue=_T("");break;
case VT_UI1:strValue.Format("%d",var.bVal);break; //bool
case VT_I2:strValue.Format("%d",var.iVal);break; //int
case VT_I4:strValue.Format("%d",var.lVal);break; //long
case VT_R4:strValue.Format("%f",var.fltVal);break; //float
case VT_R8:strValue.Format("%f",var.dblVal);break; //
case VT_CY:
var_currency=var;
strValue=var_currency.Format(0);break;
case VT_BSTR:
var_t =var;
bstr_t=var_t;
strValue.Format("%s",(const char *)bstr_t);
break;
case VT_DATE: //时间类型
{
CTime myTime(((COleDateTime)var).GetYear(),
((COleDateTime)var).GetMonth(),
((COleDateTime)var).GetDay(),
((COleDateTime)var).GetHour(),
((COleDateTime)var).GetMinute(),
((COleDateTime)var).GetSecond());
strValue = myTime.Format("%Y-%m-%d %H:%M:%S");
}
break;
case VT_BOOL:strValue.Format("%d",var.boolVal);
break;
default:strValue=_T("");break;
}
return strValue;
}
CString VariantToString(_variant_t var)
{
CString strValue;
_variant_t var_t;
_bstr_t bstr_t;
COleCurrency var_currency;
switch(var.vt)
{
case VT_EMPTY:
case VT_NULL:strValue=_T("");break;
case VT_UI1:strValue.Format("%d",var.bVal);break; //bool
case VT_I2:strValue.Format("%d",var.iVal);break; //int
case VT_I4:strValue.Format("%d",var.lVal);break; //long
case VT_R4:strValue.Format("%f",var.fltVal);break; //float
case VT_R8:strValue.Format("%f",var.dblVal);break; //
case VT_CY:
var_currency=var;
strValue=var_currency.Format(0);break;
case VT_BSTR:
var_t =var;
bstr_t=var_t;
strValue.Format("%s",(const char *)bstr_t);
break;
case VT_DATE: //时间类型
{
CTime myTime(((COleDateTime)var).GetYear(),
((COleDateTime)var).GetMonth(),
((COleDateTime)var).GetDay(),
((COleDateTime)var).GetHour(),
((COleDateTime)var).GetMinute(),
((COleDateTime)var).GetSecond());
strValue = myTime.Format("%Y-%m-%d %H:%M:%S");
}
break;
case VT_BOOL:strValue.Format("%d",var.boolVal);
break;
default:strValue=_T("");break;
}
return strValue;
}
转自http://blog.csdn.net/whf727/archive/2009/05/19/4202120.aspx
CString VariantToString(VARIANT var);转换的更多相关文章
- 关于CString与VARIANT(CComVariant)之间的转化
一.VARIANT.CComVariant类与CString是什么: CString是MFC定义的字符串类,VARIANT是COM标准为了使COM组件能够被各种语言使用(vc++.vb.java.py ...
- Char* ,CString ,WCHAR*之间的转换
关于Char* ,CString ,WCHAR*之间的转换问题 GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用 ...
- Cstring, TCHAR*, char*的转换
最近老用到Cstring, TCHAR*, char*的转换. 找到一篇写得蛮详细的. 引用过来, 方便自己以后查阅. char是类型TCHAR也是!不过他可以通过是否定义了UNICODE宏来判断到底 ...
- 关于Char* ,CString ,WCHAR*之间的转换问题
GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用往往是CString,用IO流读文件数据又得到char *.得益 ...
- JPEG和Variant的转换
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ...
- char*、string、CString各种字符串之间转换
参考博客: http://blog.csdn.net/luoweifu/article/details/20242307 http://blog.csdn.net/luoweifu/article/d ...
- 文件和Variant的转换
function FileToVariant(FileName: String): OleVariant; var AStream: TFileStream; MyBuffer: Pointe ...
- 流和Variant的转换
procedure TForm2.VariantToStream (const v : olevariant; Stream : T ...
- bmp和Variant的转换
procedure TForm2.VariantToBMP(aValue : OleVariant;var aBmp:TBitmap); var Stream : TMemoryStream; ...
随机推荐
- ie8中如何使用base64
由于ie8中不能使用jQuery2.0以上版本所以无法使用 window.btoa()加密 window.atob()解密 所以只能使用最原生的base64加密方法如下: /** * Created ...
- Vue_(Router路由)-vue-router路由的基本用法
vue-router官网:传送门 vue-router起步:传送门 vue-router路由:Vue.js官网推出的路由管理器,方便的构建单页应用 单页应用:Single Page Applicati ...
- Linux的简单命令(防火墙篇)
名称 解释 重启 reboot 关机 shutdown -h now poweroff 查看本机IP地址 ifconfig 查看默认网卡信息的文件 cat /etc/sysconfig/netw ...
- BUUCTF平台-web-边刷边记录-2
1.one line tool <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $_SERVER['REMOTE_ADDR'] = $_ ...
- Linux设备驱动程序 之 信号量和互斥体
概念 一个信号量本质是一个整数值,它和一堆函数联合使用,这一对函数通常称为P和V:希望进入临界区的进程将在相关信号量上调用P:如果信号量的值大于零,则该值会减少1,进程可以继续执行:相反,如果信号量的 ...
- AngularJS复习小结
开发移动端App,首先得在头部 <meta name="viewport" content="width=device-width, initial-scale=1 ...
- linux编辑文本(vim)时跳转到最后一行和第一行及相关指令
vi操作 1.跳到文本的最后一行:按“G”,即“shift+g” 2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”. 3.跳到第一行的第一个字符:先按 ...
- vue-cli3.0 初体验
vue-cli3.0 自我记录 其实在2018年8月10号,vue-cli3.0就已经面世了,由于项目中应用的全是2.x版本,所以并不了解3.0的vue-cli发生了什么变化,那今天尝试了下遇见的问题 ...
- 互斥锁lock、信号量semaphore、事件Event、
1.互斥锁lock 应用在多进程中互斥所lock:互斥锁是进程间的get_ticket互相排斥进程之间,谁先枪占到资源,谁就先上锁,等到解锁之后,下一个进程在继续使用.# 语法: 上锁: lock.a ...
- SpringMVC,SpringBoot上传文件简洁代码
@RequestMapping("/updateAvatar.html") public String updateHeadUrl(MultipartFile avatar, Mo ...