Click here to Skip to main content
15,888,521 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
CPallini20-Mar-08 1:24
mveCPallini20-Mar-08 1:24 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
Scmitd20-Mar-08 2:55
Scmitd20-Mar-08 2:55 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 [modified] Pin
CPallini20-Mar-08 5:23
mveCPallini20-Mar-08 5:23 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
David Crow20-Mar-08 3:13
David Crow20-Mar-08 3:13 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
CPallini20-Mar-08 3:19
mveCPallini20-Mar-08 3:19 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
Scmitd20-Mar-08 4:09
Scmitd20-Mar-08 4:09 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
David Crow20-Mar-08 4:11
David Crow20-Mar-08 4:11 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
Scmitd20-Mar-08 4:31
Scmitd20-Mar-08 4:31 
I read a article and i started. I started with crating "Win32 Dynamic-Link Library" project.
According to article i need 3 files which have extensions as .cpp,.def and .h
I prepared these files

Here my .h file :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

// Function is used to resolve a domain name to an IP address.
// The return values are: -100 = Incorrect version of Winsock
//                        -200 = Cant resolve domain.
void __stdcall ComputeCrc(int CRCType, char *Data, int Length,
BYTE *TransmitFirst, BYTE *TransmitSecond)

</ctype.h></string.h></stdlib.h></stdio.h>


This is my .cpp file :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define CRC_A 1
#define CRC_B 2
#define BYTE unsigned char

unsigned short__stdcall UpdateCrc(unsigned char ch, unsigned short *lpwCrc) /* there is an error
{
ch = (ch^(unsigned char)((*lpwCrc) & 0x00FF));
ch = (ch^(ch<<4));
*lpwCrc = (*lpwCrc >> 8)^((unsigned short)ch << 8)^((unsigned short)ch<<3)^((unsigned short)ch>>4);
return(*lpwCrc);
}

void__stdcall ComputeCrc(int CRCType, char *Data, int Length,
BYTE *TransmitFirst, BYTE *TransmitSecond)
{
unsigned char chBlock;
unsigned short wCrc;
switch(CRCType) {
case CRC_A:
wCrc = 0x6363;
break;
case CRC_B:
wCrc = 0xFFFF; 
break;
default:
return;
}
do {
chBlock = *Data++;
UpdateCrc(chBlock, &wCrc);
} while (--Length);
if (CRCType == CRC_B)
wCrc = ~wCrc;
*TransmitFirst = (BYTE) (wCrc & 0xFF);
*TransmitSecond = (BYTE) ((wCrc >> 8) & 0xFF);
return;
}
/*BYTE BuffCRC_A[10] = {0x12, 0x34};
BYTE BuffCRC_B[10] = {0x0A, 0x12, 0x34, 0x56};
unsigned short Crc;
BYTE First, Second;
FILE *OutFd;
int i;

int main(void)
{
printf("CRC-16 reference results ISO/IEC 14443-3\n");
printf("Crc-16 G(x) = x^16 + x^12 + x^5 + 1\n\n");
printf("CRC_A of [ ");
for(i=0; i<2; i++) printf("%02X ",BuffCRC_A[i]);
ComputeCrc(CRC_A, BuffCRC_A, 2, &First, &Second);
printf("] Transmitted: %02X then %02X.\n", First, Second);
printf("CRC_B of [ ");
for(i=0; i<4; i++) printf("%02X ",BuffCRC_B[i]);
ComputeCrc(CRC_B, BuffCRC_B, 4, &First, &Second);
printf("] Transmitted: %02X then %02X.\n", First, Second);
return(0);
}*/
</ctype.h></string.h></stdlib.h></stdio.h>


and this is my .def file : (My project name is Calculate_CRC)
LIBRARY Calculate_CRC
DESCRIPTION     'A C++ dll that can be called from VB'

EXPORTS
  ComputeCrc @1

I have an error where UpdateCrc function is. I hope this is a good starting for me..I wait your help...

PS: I need *TransmitFirst and *TransmitSecond values in my project

Best Regards
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
David Crow20-Mar-08 4:49
David Crow20-Mar-08 4:49 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
Scmitd20-Mar-08 4:32
Scmitd20-Mar-08 4:32 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
led mike20-Mar-08 4:26
led mike20-Mar-08 4:26 
GeneralRe: Using C/C++ DLL at Visual Basic 6.0 Pin
Scmitd20-Mar-08 4:37
Scmitd20-Mar-08 4:37 
QuestionWhat i need to do in VC++ 6 to activate the creation of dump file in crash ? Pin
Yanshof20-Mar-08 0:57
Yanshof20-Mar-08 0:57 
AnswerRe: What i need to do in VC++ 6 to activate the creation of dump file in crash ? Pin
Paresh Chitte20-Mar-08 1:57
Paresh Chitte20-Mar-08 1:57 
QuestionCreateDialog Question Pin
Programm3r19-Mar-08 22:40
Programm3r19-Mar-08 22:40 
GeneralRe: CreateDialog Question Pin
Rajkumar R19-Mar-08 23:11
Rajkumar R19-Mar-08 23:11 
QuestionRe: CreateDialog Question Pin
Programm3r19-Mar-08 23:16
Programm3r19-Mar-08 23:16 
GeneralRe: CreateDialog Question Pin
Rajkumar R19-Mar-08 23:35
Rajkumar R19-Mar-08 23:35 
GeneralRe: CreateDialog Question Pin
James R. Twine20-Mar-08 1:35
James R. Twine20-Mar-08 1:35 
GeneralRe: CreateDialog Question Pin
Programm3r20-Mar-08 1:39
Programm3r20-Mar-08 1:39 
QuestionSplitter window Pin
gReaen19-Mar-08 22:36
gReaen19-Mar-08 22:36 
GeneralRe: Splitter window Pin
Member 75496025-Mar-08 8:05
Member 75496025-Mar-08 8:05 
Generalwrite data from Visual C++ win32 console application to Microsoft Access using Visual Studio.NET 2005 Pin
Kogee San19-Mar-08 22:05
Kogee San19-Mar-08 22:05 
GeneralActivex OpenGl Pin
veer ganesh19-Mar-08 20:30
veer ganesh19-Mar-08 20:30 
GeneralRe: Activex OpenGl Pin
Cedric Moonen19-Mar-08 21:48
Cedric Moonen19-Mar-08 21:48 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.