Answered by:
How to use dll file in program?

Question
-
I have following program to search string from given text string. I created the dll file using VS2010 now how can I use it in some program?
Please give small example:
code:
#include <stdio.h> #include <stdlib.h> #include <string.h> char *BoyerMoore( unsigned char *data, unsigned int dataLength, unsigned char *string, unsigned int strLength ) { unsigned int skipTable[256], i; unsigned char *search; register unsigned char lastChar; if (strLength == 0) return NULL; // Initialize skip lookup table for (i = 0; i < 256; i++) skipTable[i] = strLength; search = string; // Decrease strLength here to make it an index i = --strLength; do { skipTable[*search++] = i; } while (i--); lastChar = *--search; // Start searching, position pointer at possible end of string. search = data + strLength; dataLength -= strLength+(strLength-1); while ((int)dataLength > 0 ) { unsigned int skip; skip = skipTable[*search]; search += skip; dataLength -= skip; skip = skipTable[*search]; search += skip; dataLength -= skip; skip = skipTable[*search]; if (*search != lastChar) /*if (skip > 0)*/ { // Character does not match, realign string and try again search += skip; dataLength -= skip; continue; } // We had a match, we could be at the end of the string i = strLength; do { // Have we found the entire string? if (i-- == 0) return search; } while (*--search == string[i]); // Skip past the part of the string that we scanned already search += (strLength - i + 1); dataLength--; } // We reached the end of the data, and didn't find the string return NULL; } void chomp(char *s) { int n = strlen(s); while (n && (s[n-1]==10 || s[n-1]==13)) s[--n] = 0; } int main(void) { char target[200]; char *ch = target,*str; char pattern[20]; int i,k,count,l; chomp(target); chomp(pattern); str = BoyerMoore( target, strlen(target), pattern, strlen(pattern) ); printf("Enter the string: \n"); fgets(target,100,stdin); //scanf ("%[^\n]%*c", target); printf("Enter the string to be matched: \n"); fgets(pattern,20,stdin); //scanf ("%[^\n]%*c", pattern); if (str == NULL) puts( "String not found" ); else puts( "true" ); getch(); return 0; }
Answers
-
(Hope I understand your question correctly)
A link on using dlls in visual studio...
http://msdn.microsoft.com/en-us/library/1ez7dh12.aspx
Also few obvious things...
1. If its a dll you shouldn't be having 'main' function its only used as an executable file's entry point. Instead for a dll you should be having DllMain.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682583(v=vs.85).aspx
2. If its a dll ideally the BoyerMoore should be exported. Checkout _declspec(dllexport)...
http://msdn.microsoft.com/en-us/library/a90k134d(v=vs.100).aspx
Nibu
Posts are provided as is without warranties or guaranties.- Proposed as answer by rp_suman Tuesday, June 11, 2013 12:45 PM
- Marked as answer by Elegentin XieModerator Thursday, June 20, 2013 10:42 AM
All replies
-
(Hope I understand your question correctly)
A link on using dlls in visual studio...
http://msdn.microsoft.com/en-us/library/1ez7dh12.aspx
Also few obvious things...
1. If its a dll you shouldn't be having 'main' function its only used as an executable file's entry point. Instead for a dll you should be having DllMain.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682583(v=vs.85).aspx
2. If its a dll ideally the BoyerMoore should be exported. Checkout _declspec(dllexport)...
http://msdn.microsoft.com/en-us/library/a90k134d(v=vs.100).aspx
Nibu
Posts are provided as is without warranties or guaranties.- Proposed as answer by rp_suman Tuesday, June 11, 2013 12:45 PM
- Marked as answer by Elegentin XieModerator Thursday, June 20, 2013 10:42 AM
-