问题是v_temp=CString(atoi(v_temp)-693)?
atoi(v_temp)总为零
void CDsdfDlg::OnButton1() //设定的一个按钮事件 

CString a; 
a=f_password_setup("2","abc"); 
        MessageBox(a); 

CString CDsdfDlg::f_password_setup(CString  v_stat,CString v_cha)\\定义的一个成员函数 

        int j; 
int l,g; 
CString n; 
        CString v_temp ; 
CString v_addstr=""; 
        j=v_cha.GetLength();//取字符串的长度 
for(int k=0;k <j;k++)//对字符串的长度进行循环 
{   
 v_temp=v_cha.Mid(k,1);//取单个字符 
 if(v_stat=="2")//如果等于2进行如下操作 
 { 
  v_temp=CString(atoi(v_temp)-693); 

 v_addstr=v_addstr+v_temp; 

return v_addstr; 

解决方案 »

  1.   

    int n = atoi(v_temp.GetBuffer(v_temp.GetLength()));
    v_temp.ReleaseBuffer();
    n -= 693;
      

  2.   

    v_temp=CString(atoi(v_temp)-693);  v_temp.Format("%d",atoi(v_temp)-693);
      

  3.   

    CString CDsdfDlg::f_password_setup(CString  v_stat,CString v_cha)
    {  
    int j;  
    int l,g;  
    CString n;  
    CString v_temp ;  
    CString v_addstr="";  
    j=v_cha.GetLength();//取字符串的长度  
    for(int k=0;k  <j;k++)//对字符串的长度进行循环  
    {    
    v_temp=v_cha.Mid(k,1);//取单个字符  
    if(v_stat=="2")//如果等于2进行如下操作  
    {  int m=*(v_temp.GetBuffer(v_temp.GetLength()));
    v_temp.Format("%d",m-693);  
    }  
    v_addstr=v_addstr+v_temp;  
    }  
    return v_addstr;  
    }