crccalcc
所属分类:Windows编程
开发工具:Visual C++
文件大小:55KB
下载次数:19
上传日期:2010-07-17 09:22:56
上 传 者:
jeenter
说明: 万能CRC计算器及其源码
万能CRC计算器及其源码
(Universal Universal CRC CRC calculator and its source and its source code calculator)
文件列表:
mainform.frx (1291, 2000-01-18)
mainform.frm (29228, 2000-01-18)
crctest.vbp (886, 2000-01-18)
CrcCtrl.ocx (69632, 2000-01-18)
testdata.dat (8253, 1999-11-05)
util.bas (4463, 2000-01-09)
crcocx.cnt (904, 2000-01-09)
CRCOCX.HLP (26517, 2000-01-18)
cmmtimer.cls (1528, 2000-01-05)
CRC Calculation Control
=======================
Version 1.5
Date 16/01/00
Copyright (c) Chris Amos, 19***, 1999, 2000
Introduction
~~~~~~~~~~~~
This control (OCX) is really designed for VB4/5/6. It
may work in other OCX containers but I haven't tried it.
The reason for using an OCX written in C for fairly
simple algorythms are speed. In short the OCX is about
500 times quicker even if you are only adding up bytes
(it also skirts around the bug in VB where a byte
becomes a short int when you compile the application,
but I digress...)
Since version 1.5, most of the algorithms are rewritten
in ASM so they are twice as fast again.
Usage
~~~~~
In VB you simply give the OCX a string and say what CRC
to return, you have the option of showing a progress bar
or passing the string in chunks. An example VB project
is included.
You can also give it a file name, an array of bytes or a
whole bunch of file names to do asynchronously in the
background.
Installation
~~~~~~~~~~~~
This is a programmers tool, if you need to ask... Well,
just in case, copy the OCX, the CNT and HLP file to a
folder on your PC. Register the OCX
("regsvr32 crcocx.ocx"). When you first use the help
function in VB, you will have to lead it to the correct
directory, after which it should remember it.
License
~~~~~~~
I have released this control as what I call 'swapware',
this means you can use this control in any personal
project for free (send me an email anyway for my intrest
at freereg_crcocx@preface.co.uk). I would like to get
something back so if you use this control to produce a
shareware or comercial product, I would like a copy of
that product, DO NOT email me an application, send me an
email with a description, a URL to get the program and
the regcode etc. If it a big app that is only distributed
on CD send me details and we'll take it from there. The
address for swaps is swapreg_crcocx@preface.co.uk
Support
~~~~~~~
As this product is free, I will not guarantee to answer
any queries, I, and a few others, have tested it and it
does what I wanted.
Send any queries to: freesupt_crcocx@preface.co.uk
Source Code
~~~~~~~~~~~
I understand that commercial organisations must be able
to guarantee continuity of support if they choose to use
a component especially from a one-man-band. The best way
I can ensure this is to make the source code available.
If you wish to 'buy' the source code go to
http://www.sw-reg.com and look up product id 201692.
They will send the password to open the source code
archive (http://www.sirocco.force9.co.uk/crcsrc.zip) and
inform me of your purchase. This will not guarantee I will
provide support and upgrades etc, it is your guarantee
that YOU can support the component.
Implementation
~~~~~~~~~~~~~~
I have implemented a selection of CRCs detailed below:
0: XOR
8 Bit Bitwise XOR
1: CRC32
This is the most widely used CRC, it expressed as
x^32,26,23,22,16,12,11,10,8,7,5,4,2,1,0. This is
used in zip archives.
2: Adler
I believe this is the method used in GZIP archives.
3: CRC16
Fairly widely used CRC, it expressed as
x^16,15,2,0.
4: CCITT
Its a standard, but I have no idea who uses it,
16 x^16,12,5,0
5: 16 Bit Sum
Simply adds up the bytes, way quicker than VB
and bug free. Sometimes called a longitudinal
redundancy check (LRC) in specs, but there must
be more to something with a fancy name like that.
6: 32 Bit Sum
As 16 bit sum, but bigger.
7: Private Custom type
Please ignore this type.
8: CCITT Reflected and byte swapped (ie Motorola byte order)
As use on ModBUS systems, variant on type 4, possibly
explains why I found no users of type 4.
16 x^16,12,5,0
9: CCITT16 Reversed
As 8 without the twist.
16 x^16,12,5,0
10:CRC8
By request CRC, it is expressed as
x^8,5,4,3,0.
11:Custom
By request, whatever you want 16 or 32 bit!
History
~~~~~~~
1.0 Initial release, requires a progress bar
control in VB proj
that uses the control.
1.1 Fixed requirement for second progress bar.
1.2 Added ModBUS crc
1.3 CCITT16 Reversed
1.4 Added DoCRCVar to CRC most things found in a
variant
Added DoCRCByteArray to CRC a Byte array, gets
round some Unicode problems on Japanese systems
1.5 Added 8 bit CRC, by request source supplied,
unsure of its use.
Added custom 16 and 32 bit CRCs
Added functions to retrieve crc as hex/dec string,
for VB!
Optimized most CRC calculations with ASM language.
Added help
Unsorted property page listbox and change size to
please VB
Added GetLastError fx, call this if the crc is 0,
if it is Genuinely 0, GetLastError will return 0,
else it returns
Whatever error it got from the OS, could be
anything but 0!
Added CRCFile fx
Added CRCFileAsyncStart, CRCFileAsyncStop and
events!
近期下载者:
相关文件:
收藏者: