如何将CString 转换成 LPBYTE


请修改这个函数体

LPBYTE CRegsterDlg::CString_To_LPBYTE(CString str)
{
LPBYTE lpb=new BYTE[str.GetLength()+1];  
//for(int i=0; i>lpb[str.GetLength()]=0; 
return lpb; 

}

另外:如何给您的分

16 个解决方案

#1


for(int i=0;i<=str.GetLength();i++)
  lpb[i]=str[i];

#2


我随便写的,你试试吧。
LPBYTE CRegsterDlg::CString_To_LPBYTE(CString str)
{
LPBYTE lpb=new BYTE[str.GetLength()];  
char *pStr=str.GetBuffer(str.GetLength());
for(int i=0;i<str.GetLength();i++){
    memcpy(lpb,pStr,1);
    lpb++;
    pStr++;
}
str.ReleaseBuffer();
return lpb; 

}

#3


对不起,我写错了。应该是:
LPBYTE CRegsterDlg::CString_To_LPBYTE(CString str)
{
LPBYTE lpb=new BYTE[str.GetLength()];  
char *pStr=str.GetBuffer(str.GetLength());
for(int i=0;i<str.GetLength();i++)
    memcpy(lpb+i,pStr+i,1);
str.ReleaseBuffer();
return lpb; 

}

#4


谢谢您ydogg专家,您的改版是正确的,不过我不知道如何给您的专家分

#5


呵呵。给分啊。我赶快说。
你去看你的贴子,后面有一个“管理“,你进去之后,有一个加分按钮,输入你的密码,就可以给分了。
:)。

#6


LPBYTE lpb = new BYTE[(str.GetLength() + 1) * sizeof(TCHAR)]; //有可能是ansi或unicode
memcpy(lpb, (void*)(LPCTSTR)str, (str.GetLength() + 1) * sizeof(TCHAR));
return lpb;

#7


CString的数据应该是CHAR *吧!! 

#8


lms()的更完善一些。

#9


tanghen(小龙女),同志,我好想







要分啊。。。。。

#10


在修改注册表时,提出这个问题

#11


lms()的比较好。 

#12


baichichi(白痴) :
           我好喜欢你的名字:P

#13


LPBYTE CRegsterDlg::CString_To_LPBYTE(CString str)
{
      int iLen=str.GetLength();
      LPBYTE m_Ret=(LPBYTE)malloc(iLen);
      LPTSTR pStr;
      pStr=str.GetBuffer(iLen);
      memcpy(m_Ret,pStr,iLen);
      memset(m_Ret+iLen+1,0,1);
      return m_Ret;
}
肯定正确!!
      

#14


呵呵,大家很积极啊!

#15


111222:你那个是什么东东?

#16


他的信箱,多半他的密码也是这个。。。呵呵。
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告