VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 313|回复: 1

[求助] 求大神帮忙把从CString转为char

[复制链接]
51_avatar_middle
在线会员 jabbie 发表于 2018-4-21 14:31:35 | 显示全部楼层 |阅读模式
3驿站币
求大神帮忙把从CString转为char


#define C1 52845
#define C2 22719
#define C3 65
key=596845;
CString Encrypt(CString S, WORD Key) // 加密函数
{
        CString Result,str;
        int i,j;
        Result=S;
        for(i=0; i<S.GetLength(); i++)
        {
                Result.SetAt(i, S.GetAt(i)^(Key>>8));
                Key = ((BYTE)Result.GetAt(i)+Key)*C1+C2;
        }
        S=Result;
        Result.Empty();
        for(i=0; i<S.GetLength(); i++)
        {
                j=(BYTE)S.GetAt(i);
                str="12";
                str.SetAt(0, C3+j/26);
                str.SetAt(1, C3+j%26);
                Result += str;
        }
        return Result;
}


CString Decrypt(CString S, WORD Key) // 解密函数
{
        CString Result,str;
        int i,j;
        Result.Empty(); // 清除结果
        for(i=0; i < S.GetLength()/2; i++) // 将字符串两个字母一组进行处理
        {
                j = ((BYTE)S.GetAt(2*i)-C3)*26;//相应的,解密处要改为相同的数
                j += (BYTE)S.GetAt(2*i+1)-C3;
                str="1"; // 设置str长度为1
                str.SetAt(0, j);
                Result+=str; // 追加字符,还原字符串
        }
        S=Result; // 保存中间结果
        for(i=0; i<S.GetLength(); i++) // 依次对字符串中各字符进行操作
        {
                Result.SetAt(i,(BYTE)S.GetAt(i)^(Key>>8)); // 将密钥移位后与字符异或
                Key = ((BYTE)S.GetAt(i)+Key)*C1+C2; // 产生下一个密钥
        }
        return Result;
}

最佳答案

查看完整内容

这个我怎么记得回答过,如果楼主是VC6.0开发的话,默认工程就是多字节的,所以,CString 和 char * 可以互转,或者说直接赋值的,例如: char p[] = "abcdefg"; CString str = p; char* p2 =(LPTSTR)(LPCTSTR)str;




上一篇:为什么这个程序的 printf和 scanf 运行不了?
下一篇:MFC教程视频

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-4-21 14:31:36 | 显示全部楼层
这个我怎么记得回答过,如果楼主是VC6.0开发的话,默认工程就是多字节的,所以,CString 和 char * 可以互转,或者说直接赋值的,例如:
char p[] = "abcdefg";
CString str = p;
char* p2 =(LPTSTR)(LPCTSTR)str;

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-8-20 16:47

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表