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位

 

======================

下文转自:http://blog.csdn.net/allenky/archive/2007/06/12/1649065.aspx

CString、char*、string、int、_bstr_t、CTime、COleDateTime等等的相互转换,如何判断一个字符串是一个浮点数?

#include<string>
using namespace std;
#include <COMDEF.H>
{
CString strCString="ABC";
char strchar[256],*pstr;

pstr=(LPSTR)(LPCTSTR)strCString; //CString---->char*
strcpy(strchar,(LPSTR)(LPCTSTR)strCString); //CString---->char[]

_bstr_t strbstr=pstr; //char*---->_bstr_t
WCHAR *strWCHAR=strbstr; //b_str_t--->UNICODE

strbstr=strWCHAR;
pstr=strbstr; //UNICODE---->char*

strCString="10";
int istr=atoi((LPSTR)(LPCTSTR)strCString); //CString、char[]、char*------>int
strCString.Format("%d",istr); //int----->CString
sprintf(strchar,"%d",istr); //int----->char[]

pstr=new char[256]; //字符串申请空间
strcpy(pstr,"ABC"); //字符串赋值
delete []pstr; //字符串释放

string strstring="ABC";
pstr=(char*)strstring.c_str(); //string---->char*

strCString="2003-10-27 6:24:37"; //CString--->COleDateTime
COleVariant vtime(strCString);
vtime.ChangeType(VT_DATE);
COleDateTime time4=vtime;

COleDateTime time1(1977,4,16,2,2,2); //COleDataTime--->CTime
SYSTEMTIME systime;
VariantTimeToSystemTime(time1, &systime);
CTime tm(systime);

time_t time2=tm.GetTime(); //CTime--->time_t
COleDateTime time3(time2); //time_t--->COleDateTime

//判断字符串是否是某种类型
CString sValue("123.1");
COleVariant vValue(sValue);

BOOL bStrIsFloat = (SUCCEEDED(VariantChangeType(&vValue, &vValue, 0, VT_R8)) && sValue.Find('.') != -1);
if(bStrIsFloat)
{
AfxMessageBox("浮点");
}


CString==>UNICODE
      wchar_t  s[20];
      CString str=“你好”;
      wcscpy(s,(LPCTSTR)str); //前面没有转成UNICODE编码,所以这里需要强制转换

char* chstr = CW2A(wszStr); 



1.Cstring转换为char *
   Cstring strFileName; 
   int length = strFileName.GetLength();
   char *cFileName; 
   cFileName=(char *)strFileName.GetBuffer(length);
2. Cstring转化为 LPSTR
   Cstring str;
   LPSTR lpstr = (LPSTR)str;
3. Cstring转化为 LPCSTR
   int length = strFileName.GetLength();
   size_t aLen = length + 1;

   LPCSTR lpstrFileName = (LPCSTR)strFileName.GetBuffer(length);
   int length = strFileName.GetLength();
   size_t aLen = length + 1;
4. Cstring转化为 LPOLESTR
   int length = strFileName.GetLength();
   size_t aLen = length + 1;
   LPCSTR lpstrFileName = (LPCSTR)strFileName.GetBuffer(length);
   int wLen = MultiByteToWideChar(CP_ACP, 0,lpstrFileName,aLen, NULL,0);
   LPOLESTR lpFileName = new WCHAR [wLen];
   MultiByteToWideChar(CP_ACP, 0,lpstrFileName,aLen,lpFileName,wLen);

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2021-12-29
  • 2021-11-11
猜你喜欢
  • 2021-12-04
  • 2021-08-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-06
  • 2022-02-21
  • 2022-12-23
相关资源
相似解决方案