Posts Tagged ‘cpp’

VC常用数据类型转换

星期日, 8月 26th, 2007

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

  • 短整型(int) itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 itoa(i,temp,2); ///按二进制方式转换
  • 长整型(long) ltoa(l,temp,10);
  • 浮点数(float,double) 用fcvt可以完成转换,这是MSDN中的例子: int decimal, sign; char *buffer; double source = 3.1415926535; buffer = _fcvt( source, 7, &decimal, &sign ); 运行结果:source: 3.1415926535 buffer: ‘31415927′ decimal: 1 sign: 0 decimal表示小数点的位置,sign表示符号:0为正数,1为负数
  • CString变量 str = "2008北京奥运"; buf = (LPSTR)(LPCTSTR)str;
  • BSTR变量 BSTR bstrValue = ::SysAllocString(L"程序员"); char * buf = _com_util::ConvertBSTRToString(bstrValue); SysFreeString(bstrValue); AfxMessageBox(buf); delete(buf);
  • CComBSTR变量 CComBSTR bstrVar("test"); char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str); AfxMessageBox(buf); delete(buf);
  • _bstr_t变量 _bstr_t类型是对BSTR的封装,因为已经重载了=操作符,所以很容易使用 _bstr_t bstrVar("test"); const char *buf = bstrVar;///不要修改buf中的内容 AfxMessageBox(buf);
  • 通用方法(针对非COM数据类型) 用sprintf完成转换
  •  
    1. char  buffer[200];
    2. char  c = '1';
    3. int   i = 35;
    4. long  j = 1000;
    5. float f = 1.7320534f;
    6. sprintf( buffer, "%c",c);
    7. sprintf( buffer, "%d",i);
    8. sprintf( buffer, "%d",j);
    9. sprintf( buffer, "%f",f);

(more…)

[乱]mfc与sdk笔记[十四]

星期四, 8月 16th, 2007

关于链接库。大概的使用应该就这些吧。呵呵。
(more…)