oldmen 发表于 2015-6-24 18:53:31

分享一个用VC做的LRC校验计算器

http://pan.baidu.com/s/1o6mS7Ia
为什么不能上传附件呢?谁帮忙传一下

huchunlei 发表于 2015-6-24 19:41:37

我帮楼主传上来了。

见附件:


但是,我在WIN8.1 64位系统下,不能运行,不知道怎么回事。 请楼主下载验证一下,是不是我下载的文件有问题,如下图:

oldmen 发表于 2015-6-24 19:49:31

本帖最后由 oldmen 于 2015-6-24 19:54 编辑

huchunlei 发表于 2015-6-24 19:41
我帮楼主传上来了。

见附件:


在win7 32位系统下运行正常。

下载的文件没有问题

下面是LRC校验的fun
unsigned char LRC_Check(unsigned char *data,unsigned char length)
{
        unsigned char i;
        unsigned char k;
        unsigned char result;
        unsigned char lrcdata;

        for(i=1;i<length+1;i++)
        {
                if(data>0x40)
                        lrcdata=data-0x41+10;
                else
                        lrcdata=data-0x30;
        }
        for(i=0;i<length/2;i++)
        {
                k+=(lrcdata*16+lrcdata);
        }
        k=k%256;
        k=256-k;
       
        result=k%256;
        return result;
}

huchunlei 发表于 2015-6-24 19:55:05

我有个虚拟机,用Vmware player 做的, 装的是 WIN7 32位,也不行,一样的提示,估计要安装 VC 的运行环境吧。   我正好这两天要用 VC#, 一会我装个 Visual studio 2012, 然后再测试下, 有结果了在来补充。

oldmen 发表于 2015-6-24 19:57:30

顺便问个问题0xfd 转换成“FD”最简洁的方法是什么

gujiamao_love 发表于 2015-6-24 20:08:00

oldmen 发表于 2015-6-24 19:57
顺便问个问题0xfd 转换成“FD”最简洁的方法是什么

void fun( char *bufin, char *bufout)
{
        if((NULL == bufin) || (NULL == bufout)) {
                return ;
        }
        butout = 'F';
        bufout = 'D';
}
这样可以么?

huchunlei 发表于 2015-6-24 20:14:38

oldmen 发表于 2015-6-24 19:57
顺便问个问题0xfd 转换成“FD”最简洁的方法是什么

这个问题,最简洁的方式,我也不知道。因为 VC我不懂, 而VC# 是基于.NET 的, 有现成的转换函数可以使用,比如 BitConverter.ToString(), VC#我用的也不多。    而我平时用的多的是单片机下用C语言, C语言的这种转换,我一般用 sprintf,但是sprintf耗内存和堆栈多些,也不算是最简洁的方法。

KongQuan 发表于 2015-6-24 21:14:00

huchunlei 发表于 2015-6-24 20:14
这个问题,最简洁的方式,我也不知道。因为 VC我不懂, 而VC# 是基于.NET 的, 有现成的转换函数可以使 ...

unsigned char const asc_tab[] = {'0','1','2','3','4','5','6','7','8','9','A','B','c','D','E','F'};

void hex2asc(unsigned char *dst, unsigned char *src, int len)
{
        unsigned char dat;

        while(len--)
        {
                dat = *src++;
                *dst++ = asc_tab;
                *dst++ = asc_tab;
        }
}
页: [1]
查看完整版本: 分享一个用VC做的LRC校验计算器