473,387 Members | 2,436 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Help!-Errors while running this snippet code

Hi,
I am getting the following errors while trying to run this snippet
in Microsoft Visual C++.Can't seem to print the crc value stored.

/* +++Date last modified: 05-Jul-1997 */

/* Crc - 32 BIT ANSI X3.66 CRC checksum files */

#include <stdio.h>
#include "crc.h"

#ifdef __TURBOC__
#pragma warn -cln
#endif

/************************************************** ********************\
|* Demonstration program to compute the 32-bit CRC used as the frame
*|
|* check sequence in ADCCP (ANSI X3.66, also known as FIPS PUB 71
*|
|* and FED-STD-1003, the U.S. versions of CCITT's X.25 link-level
*|
|* protocol). The 32-bit FCS was added via the Federal Register,
*|
|* 1 June 1982, p.23798. I presume but don't know for certain that
*|
|* this polynomial is or will be included in CCITT V.41, which
*|
|* defines the 16-bit CRC (often called CRC-CCITT) polynomial. FIPS
*|
|* PUB 78 says that the 32-bit FCS reduces otherwise undetected
*|
|* errors by a factor of 10^-5 over 16-bit FCS.
*|
\************************************************* *********************/

/* Need an unsigned type capable of holding 32 bits; */

typedef DWORD UNS_32_BITS;

/* Copyright (C) 1986 Gary S. Brown. You may use this program, or
code or tables extracted from it, as desired without restriction.*/

/* First, the polynomial itself and its table of feedback terms. The
*/
/* polynomial is
*/
/* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^ 5+X^4+X^2+X^1+X^0
*/
/* Note that we take it "backwards" and put the highest-order term in
*/
/* the lowest-order bit. The X^32 term is "implied"; the LSB is the
*/
/* X^31 term, etc. The X^0 term (usually shown as "+1") results in
*/
/* the MSB being 1.
*/

/* Note that the usual hardware shift register implementation, which
*/
/* is what we're using (we're merely optimizing it by doing eight-bit
*/
/* chunks at a time) shifts bits into the lowest-order term. In our
*/
/* implementation, that means shifting towards the right. Why do we
*/
/* do it this way? Because the calculated CRC must be transmitted in
*/
/* order from highest-order term to lowest-order term. UARTs transmit
*/
/* characters in order from LSB to MSB. By storing the CRC this way,
*/
/* we hand it to the UART in the order low-byte to high-byte; the UART
*/
/* sends each low-bit to hight-bit; and the result is transmission bit
*/
/* by bit from highest- to lowest-order term without requiring any bit
*/
/* shuffling on our part. Reception works similarly.
*/

/* The feedback terms table consists of 256, 32-bit entries. Notes:
*/
/*
*/
/* 1. The table can be generated at runtime if desired; code to do so
*/
/* is shown later. It might not be obvious, but the feedback
*/
/* terms simply represent the results of eight shift/xor opera-
*/
/* tions for all combinations of data and CRC register values.
*/
/*
*/
/* 2. The CRC accumulation logic is the same for all CRC polynomials,
*/
/* be they sixteen or thirty-two bits wide. You simply choose the
*/
/* appropriate table. Alternatively, because the table can be
*/
/* generated at runtime, you can start by generating the table for
*/
/* the polynomial in question and use exactly the same "updcrc",
*/
/* if your application needn't simultaneously handle two CRC
*/
/* polynomials. (Note, however, that XMODEM is strange.)
*/
/*
*/
/* 3. For 16-bit CRCs, the table entries need be only 16 bits wide;
*/
/* of course, 32-bit entries work OK if the high 16 bits are zero.
*/
/*
*/
/* 4. The values must be right-shifted by eight bits by the "updcrc"
*/
/* logic; the shift must be unsigned (bring in zeroes). On some
*/
/* hardware you could probably optimize the shift in assembler by
*/
/* using byte-swap instructions.
*/

static UNS_32_BITS crc_32_tab[] = { /* CRC polynomial 0xedb88320 */
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,
0x706af48f,
0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e,
0x97d2d988,
0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064,
0x6ab020f2,
0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551,
0x83d385c7,
0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f,
0x63066cd9,
0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,
0xa2677172,
0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa,
0x42b2986c,
0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf,
0xabd13d59,
0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5,
0x56b3c423,
0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2,
0xb10be924,
0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190,
0x01db7106,
0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5,
0xe8b8d433,
0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb,
0x086d3d2d,
0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8,
0xf262004e,
0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6,
0x12b7e950,
0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,
0xfbd44c65,
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541,
0x3dd895d7,
0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846,
0xda60b8d0,
0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c,
0x270241aa,
0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409,
0xce61e49f,
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17,
0x2eb40d81,
0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c,
0x74b1d29a,
0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12,
0x94643b84,
0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27,
0x7d079eb1,
0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d,
0x806567cb,
0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a,
0x67dd4acc,
0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8,
0xa1d1937e,
0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd,
0x48b2364b,
0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3,
0xa867df55,
0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0,
0x5268e236,
0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe,
0xb2bd0b28,
0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b,
0x5bdeae1d,
0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9,
0xeb0e363f,
0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae,
0x0cb61b38,
0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4,
0xf1d4e242,
0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,
0x18b74777,
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff,
0xf862ae69,
0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354,
0x3903b3c2,
0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a,
0xd9d65adc,
0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f,
0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,
0xcdd70693,
0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02,
0x2a6f2b94,
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
};

DWORD updateCRC32(unsigned char ch, DWORD crc)
{
return UPDC32(ch, crc);
}

Boolean_T crc32file(char *name, DWORD *crc, long *charcnt)
{
register FILE *fin;
register DWORD oldcrc32;
register int c;

oldcrc32 = 0xFFFFFFFF; *charcnt = 0;
#ifdef MSDOS
if ((fin=fopen(name, "rb"))==NULL)
#else
if ((fin=fopen(name, "r"))==NULL)
#endif
{
perror(name);
return Error_;
}
while ((c=getc(fin))!=EOF)
{
++*charcnt;
oldcrc32 = UPDC32(c, oldcrc32);
}

if (ferror(fin))
{
perror(name);
*charcnt = -1;
}
fclose(fin);

*crc = oldcrc32 = ~oldcrc32;

return Success_;
}

DWORD crc32buf(char *buf, size_t len)
{
register DWORD oldcrc32;

oldcrc32 = 0xFFFFFFFF;

for ( ; len; --len, ++buf)
{
oldcrc32 = UPDC32(*buf, oldcrc32);
}

return ~oldcrc32;

}

#ifdef TEST

main(int argc, char *argv[])
{
DWORD crc;
long charcnt;
register errors = 0;

while(--argc > 0)
{
errors |= crc32file(*++argv, &crc, &charcnt);
printf("%08lX %7ld %s\n", crc, charcnt, *argv);
}
return(errors != 0);
}

#endif /* TEST */
/************************ERRORS******************** */
Compiling...
CRC_32.C
D:\Program Files\DevStudio\MyProjects\newz\CRC_32.C(30) : error C2282:
'DWORD' is followed by 'crc32buf' (missing ','?)
D:\Program Files\DevStudio\MyProjects\newz\CRC_32.C(84) : error C2282:
'DWORD' is followed by 'crc_32_tab' (missing ','?)
D:\Program Files\DevStudio\MyProjects\newz\CRC_32.C(128) : error
C2059: syntax error : '}'
D:\Program Files\DevStudio\MyProjects\newz\CRC_32.C(136) : error
C2282: 'Boolean_T' is followed by 'crc32file' (missing ','?)
D:\Program Files\DevStudio\MyProjects\newz\CRC_32.C(168) : error
C2059: syntax error : '}'
Error executing cl.exe.

Thanks in advance for all Suggestions and help to run this code
Nov 13 '05 #1
2 2572
Kavitha Rao wrote:
Hi,
I am getting the following errors while trying to run this snippet
in Microsoft Visual C++.Can't seem to print the crc value stored.

So why are you asking here? C is not C++.
Furthermore, the (entirely too much) code you've posted is full of
non-standard, platform specific material.

Try a micro***t newsgroup.

And before posting here again, RTFF!

HTH,
--ag
--
Artie Gold -- Austin, Texas

----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
Nov 13 '05 #2
<snip>
Thanks I have found the solution ,the code is working fine and
prints the correct crc value.

Artie Gold <ag***@bga.com> wrote in message news:<3F**************@bga.com>...
Kavitha Rao wrote:
Hi,
I am getting the following errors while trying to run this snippet
in Microsoft Visual C++.Can't seem to print the crc value stored.

So why are you asking here? C is not C++.
Furthermore, the (entirely too much) code you've posted is full of
non-standard, platform specific material.

Try a micro***t newsgroup.

And before posting here again, RTFF!

HTH,
--ag

Nov 13 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

10
by: Tobias Nilsson | last post by:
I have almost exactly the same problem as the guy below. Is it NOT possible running .NET code locally in Internet Explorer WITHOUT a webserver???? / Tobias --------- My company has in the...
2
by: Andrew Wrigley | last post by:
Hi I have a database that works OK except in two regards, that I suspect are related. Problem 1. After even minor changes to a form module (ContactFrm), such as editing a comment, I hit the...
2
by: TB | last post by:
I am seeing a very strange problem as follows... I have a loop where a fair amount of processing is going on and near the top of the loop I access a class that has only static helper functions...
2
by: Peter Krikelis | last post by:
Hi, I have a C++ code. I tried to open and run in in VC++.Net and it gave me an error: fatal error C1083: Cannot open include file: 'getopt.h': No such file or directory Somehow it did not...
0
by: Filippo Bettinaglio | last post by:
Security problem running unmanaged code (.ocx control) in a windows from control hosted in IE6 Hi, I have design a windows from control which contain a .OCX in one of its forms....
12
by: ishtar2020 | last post by:
Hi everybody I've been writing my very first application in Python and everything is running smoothly, except for a strange problem that pops up every once in a while. I'm sure is the kind of...
2
by: peter | last post by:
I'm not sure if this query should be directed to comp.lang.python or comp.os.linux.misc so I intend to post it to both with apologies if it's inappropriate on either. I have a small python...
2
by: junglej815 | last post by:
Hey everyone I have 3 ComboBox's on a form on a Word Document that is being used as a drop down menu to select certain items. In order to input each item in the ComboBox's I put this code in: ...
1
by: soumen dey | last post by:
while running this code java.lang.nullpointerexception is showing. how to overcome? <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.