We use many dynamic library and static library in a project for development purpose .The most way we use is call the various function from the .dll or .lib or any library.But sometimes it is needed to call the application function from .dll or .lib (application: who use the .dll / .lib).
In programming literature it is called as callback.Now I will demonstrate how to call a function of an application to execute from library .
For this purpose we will use function pointer.The way is like....
1. app says : "dll/lib keep my function address, which you will execute ".
2. dll/lib says : "Ok, I got it and stored it for future use".
.
.
.
3.dll/lib says : "It is time I call you for work my application function".
Step 0 : Declare the function pointer.
i) typedef void(*function)(void)
function : function address
void : parameter(No)
ii) typedef int(*function)(void)
int : return integer
function: Function address
void : No parameter
iii) typedef int(*function)(int)
int : return integer
function: Function address
int : integer parameter
Use as many parameter or return type or function name as you want.
Step 1 : Now set the function pointer of a function to dll/lib by calling a user defined SET method.
Example :
int(*toUseFunction)(int);
AppClass::MethodOfUse()
{
.....
toUseFunction function = &AppClass::AppFunction;
dllInstance->SetTheCallback(function);
.....
}
int Appclass::AppFunction(int someVariable)
{
int value;
return value;
}
Note : For C++ it will create a compilation error if the function is not declare as static member.
Error :
error C2276: '&' : illegal operation on bound member function expression
IntelliSense: a value of type "int (Appclass::*)(int someVariable)" cannot be assigned to an entity of type "toUseFunction".
So in declaration it must have to be a static member.
Step 2: dll will stored the function pointer in a public function pointer variable of same type like..
int(*function)(int);
function storedFunctionPointer;
DllClass::SetTheCallback( &appFunction)
{
storedFunctionPointer = appFunction;
}
Step 3: Call the storedFunctionPointer for execute and return the Application Function Value.
int returnValue = storedFunctionPointer(dllSoomeValuetoApp);
And that's all.Your application works with dll/lib.
Subscribe to:
Posts (Atom)
How to enable hotspot in TPG iPhone
By default, the hotspot does not work on the phone. It will ask you to contact the provider. This video will help you bypass the network ...
-
There is none who can replace him.At least the standard which he create in is life time in the running literature it never be replaceable.Th...
-
Server #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <...
-
Error: curl: (35) Unknown SSL protocol error Cause: For node.js https connection you are using invalid certificate. Invalid certificate...