diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/helloworldexeexample_8c_source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/helloworldexeexample_8c_source.html Tue Mar 30 16:16:55 2010 +0100 @@ -0,0 +1,115 @@ + + + + +TB9.2 Example Applications: examples/PIPS/HelloWorldExample/src/helloworldexeexample/helloworldexeexample.c Source File + + + + + +

examples/PIPS/HelloWorldExample/src/helloworldexeexample/helloworldexeexample.c

00001 // helloworldexeexample.c
+00002 //
+00003 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+00004 // All rights reserved.
+00005 // This component and the accompanying materials are made available
+00006 // under the terms of "Eclipse Public License v1.0"
+00007 // which accompanies this distribution, and is available
+00008 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
+00009 //
+00010 // Initial Contributors:
+00011 // Nokia Corporation - initial contribution.
+00012 //
+00013 // Contributors:
+00014 //
+00015 // Description:
+00016 //
+00017 
+00018 
+00019 /* This example is a simple PIPS STDEXE application. It loads the DLL and calls its exported function. 
+00020 The application implements the dynamic lookup by name mechanism of the exported function using the libdl APIs.
+00021 */
+00022 
+00023 // Include files.
+00024 #include <stdio.h>
+00025 #include <dlfcn.h>
+00026 #include <stdlib.h>
+00027 
+00031 void PressAKey()
+00032         {
+00033         fflush(stdout);
+00034         getchar();
+00035         }
+00040 int DisplayErrorMessage()
+00041         {
+00042         // Obtain the last error occurred using the libdl API, dlerror().
+00043         const char *q = dlerror();
+00044         
+00045         // Prints the error message.
+00046         printf("%s",q);
+00047         PressAKey();
+00048                 
+00049         // returns the failure code.
+00050         return EXIT_FAILURE;
+00051         }
+00052 
+00053 int main()
+00054 {
+00055         int result;
+00056         
+00057         // Handle to load the dynamic library.
+00058         void* handleToDll;
+00059         
+00060         typedef void (*PrintHelloWorldFunction)(void);
+00061         PrintHelloWorldFunction PrintHelloWorld;
+00062         
+00063         // Contains name of the DLL file.
+00064         char dllFileName[] = "helloworlddllexample.dll";
+00065 
+00071         handleToDll = dlopen(dllFileName, RTLD_LAZY);
+00072         
+00073         // Check the descriptor value.If it is null, the error message is printed.
+00074         if (!handleToDll)
+00075                 {
+00076                 DisplayErrorMessage();
+00077                 }
+00078         
+00079         // Print the message to start the example application.
+00080         printf(" Press enter key to step through the example application\n");
+00081         PressAKey();
+00082 
+00088         PrintHelloWorld = (PrintHelloWorldFunction)dlsym(handleToDll, "PrintHelloWorld");   
+00089         
+00090         // Check the symbol address value. If this is null, the error message is printed.
+00091         if(!PrintHelloWorld)
+00092                 {
+00093                 DisplayErrorMessage();
+00094                 }
+00095 
+00096         // Call the loaded DLL's exported function.
+00097         PrintHelloWorld();
+00098 
+00105         result= dlclose(handleToDll);
+00106         
+00107         // Check the return value. If this is -1, the error message is printed.
+00108         if(result == -1)
+00109                 {
+00110                 DisplayErrorMessage();
+00111                 }
+00112         
+00113         // Print the message to exit from the example application.
+00114         printf(" Press enter key to exit from the example application");
+00115         PressAKey();
+00116         
+00117         // returns the success code.
+00118         return EXIT_SUCCESS;
+00119 }
+00120 
+00121 
+00122 
+
+
Generated by  + +doxygen 1.6.2
+ +