|
// Win32DLLClient.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<windows.h>
typedef int (__cdecl *MYPROC)();
typedef int (__cdecl *SORTDISPLAYPROC)(int arr[],int);
typedef int (__cdecl *SEARCHPROC)(int arr[],int,int,int);
int _tmain(int argc, _TCHAR* argv[])
{
int arr[]={11,99,88,44,66,55,33,77,22,10,9,6};
int s = 12;
int svalue = 33;
int sResult = 0;
HINSTANCE hinstLib;
MYPROC ProcAdd;
SORTDISPLAYPROC ProcSort, ProcDisplay;
SEARCHPROC lSearch, bSearch;
BOOL fFreeResult;
// Get a handle to the DLL module.
hinstLib = LoadLibrary(TEXT("Win32DLL"));
// If the handle is valid, try to get the function address.
if (hinstLib != NULL)
{
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "InitBubbleSort");
ProcDisplay = (SORTDISPLAYPROC) GetProcAddress(hinstLib, "Display");
ProcSort = (SORTDISPLAYPROC) GetProcAddress(hinstLib, "BubbleSort");
lSearch = (SEARCHPROC) GetProcAddress(hinstLib, "LinearSearch");
bSearch = (SEARCHPROC) GetProcAddress(hinstLib, "BinarySearch");
int *ipArr = (int*) GetProcAddress(hinstLib, "arr");
int *Size = (int*) GetProcAddress(hinstLib, "nSize");
int *sv = (int*) GetProcAddress(hinstLib, "searchval");
ipArr=arr;
Size = &s;
sv = &svalue;
// If the function address is valid, call the function.
if (NULL != ProcAdd){
(ProcAdd)();
}
printf("\nDisply the array of elements before BubbleSort \n");
// If the function address is valid, call the function.
if (NULL != ProcDisplay){
(ProcDisplay)(arr,s);
}
// If the function address is valid, call the function.
if (NULL != ProcSort){
(ProcSort)(arr,s);
}
printf("\nDisply the array of elements After BubbleSort \n");
// If the function address is valid, call the function.
if (NULL != ProcDisplay){
(ProcDisplay)(arr,s);
}
printf("\nSearch using LinearSearch \n");
if (NULL != lSearch){
sResult = (lSearch)(arr,svalue,0,s);
}
if(sResult == -1)
printf("Search element not found!\n");
else
printf("Element %d found in %d position!\n", svalue,sResult);
// Free the DLL module.
fFreeResult = FreeLibrary(hinstLib);
}
return 0;
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Selvam has worked on several technologies like Java, Python, Big data, VC++, MFC, Windows API and Weblogic server. He takes a lot of interest in reading technical articles and enjoys writing them too. He has been awarded as a Microsoft Community Star in 2004, MVP in 2005-06, SCJP 5.0 in 2009, Microsoft Community Contributor(MCC) 2011.
Big Data
o Google Professional Data Engineer 2021
o Confluent Certified Developer for Apache Kafka 2020
o Datastax Apache Cassandra 3.x Developer Associate Certification 2020
✓ Cloud
o Google Professional Cloud Architect 2021
o Microsoft Certified: Azure Solutions Architect Expert 2020
o AWS Certified Solutions Architect - Associate 2020
✓ Oracle Certified Master, Java EE 6 Enterprise Architect (OCMEA) 2018
Github :
https://github.com/selvamselvam
Web site:
http://www.careerdrill.com
Linkedin:
https://www.linkedin.com/in/selvamselvam/