]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/dynlib.tex
added and documented wxDEFINE_SCOPED_PTR_TYPE; improved docs a bit
[wxWidgets.git] / docs / latex / wx / dynlib.tex
index 2e7fc08b184d58d0e179ac9edff13171c6221883..6712c0b87d662b4bc6dfb9f1007a3b975936f3fd 100644 (file)
 \section{\class{wxDynamicLibrary}}\label{wxdynamiclibrary}
 
 wxDynamicLibrary is a class representing dynamically loadable library
-(Windows DLL, shared library under Unix etc.). It is implemented as a wrapper
-to \helpref{wxDllLoader}{wxdllloader}.
+(Windows DLL, shared library under Unix etc.). Just create an object of
+this class to load a library and don't worry about unloading it -- it will be
+done in the objects destructor automatically.
 
-\wxheading{See also}
+% deprecated now...
+%
+%\wxheading{See also}
+%
+%\helpref{wxDllLoader}{wxdllloader}
 
-\helpref{wxDllLoader}{wxdllloader}
 
 \membersection{wxDynamicLibrary::wxDynamicLibrary}\label{wxdynamiclibrarywxdynamiclibrary}
 
 \func{}{wxDynamicLibrary}{\void}
 
-\func{}{wxDynamicLibrary}{\param{const wxString\& }{name}}
+\func{}{wxDynamicLibrary}{\param{const wxString\& }{name}, \param{int }{flags = wxDL\_DEFAULT}}
 
 Constructor. Second form calls \helpref{Load}{wxdynamiclibraryload}.
 
-\membersection{wxDynamicLibrary::Detach}\label{wxdynamiclibrarydetach}
+\membersection{wxDynamicLibrary::CanonicalizeName}\label{wxdynamiclibrarycanonicalizename}
 
-\func{wxDllType}{Detach}{\void}
+\func{wxString}{CanonicalizeName}{\param{const wxString\& }{name}, \param{wxDynamicLibraryCategory}{ cat = wxDL\_LIBRARY}}
 
-Detaches this object from its library handle, i.e. the object will not unload
-the library any longer in its destructor but it is now the callers
-responsability to do this.
+Returns the platform-specific full name for the library called \arg{name}. E.g.
+it adds a {\tt ".dll"} extension under Windows and {\tt "lib"} prefix and 
+{\tt ".so"}, {\tt ".sl"} or maybe {\tt ".dylib"} extension under Unix.
 
-\membersection{wxDynamicLibrary::IsLoaded}\label{wxdynamiclibraryisloaded}
+The possible values for \arg{cat} are:
 
-\constfunc{bool}{IsLoaded}{\void}
+\begin{twocollist}
+    \twocolitem{wxDL\_LIBRARY}{normal library}
+    \twocolitem{wxDL\_MODULE}{a loadable module or plugin}
+\end{twocollist}
 
-Returns true if the library was successfully loaded, false otherwise.
+\wxheading{See also}
 
-\membersection{wxDynamicLibrary::Load}\label{wxdynamiclibraryload}
+\helpref{CanonicalizePluginName}{wxdynamiclibrarycanonicalizepluginname}
 
-\func{bool}{Load}{\param{const wxString\& }{name}}
 
-Loads DLL into memory.
+\membersection{wxDynamicLibrary::CanonicalizePluginName}\label{wxdynamiclibrarycanonicalizepluginname}
 
-Returns true if the library was successfully loaded, false otherwise.
+\func{wxString}{CanonicalizePluginName}{\param{const wxString\& }{name}, \param{wxPluginCategory}{ cat = wxDL\_PLUGIN\_GUI}}
 
-\membersection{wxDynamicLibrary::Unload}\label{wxdynamiclibraryunload}
+This function does the same thing as 
+\helpref{CanonicalizeName}{wxdynamiclibrarycanonicalizename} but for wxWindows
+plugins. The only difference is that compiler and version information are added
+to the name to ensure that the plugin which is going to be loaded will be
+compatible with the main program.
 
-\func{void}{Unload}{\void}
+The possible values for \arg{cat} are:
+
+\begin{twocollist}
+    \twocolitem{wxDL\_PLUGIN\_GUI}{plugin which uses GUI classes (default)}
+    \twocolitem{wxDL\_PLUGIN\_BASE}{plugin which only uses wxBase}
+\end{twocollist}
+
+\membersection{wxDynamicLibrary::Detach}\label{wxdynamiclibrarydetach}
 
-Unloads the library from memory.
+\func{wxDllType}{Detach}{\void}
+
+Detaches this object from its library handle, i.e. the object will not unload
+the library any longer in its destructor but it is now the callers
+responsability to do this using \helpref{Unload}{wxdynamiclibraryunload}.
 
 \membersection{wxDynamicLibrary::GetSymbol}\label{wxdynamiclibrarygetsymbol}
 
@@ -66,3 +87,39 @@ contains no such symbol.
 
 \helpref{wxDYNLIB\_FUNCTION}{wxdynlibfunction}
 
+\membersection{wxDynamicLibrary::IsLoaded}\label{wxdynamiclibraryisloaded}
+
+\constfunc{bool}{IsLoaded}{\void}
+
+Returns \true if the library was successfully loaded, \false otherwise.
+
+\membersection{wxDynamicLibrary::Load}\label{wxdynamiclibraryload}
+
+\func{bool}{Load}{\param{const wxString\& }{name}, \param{int }{flags = wxDL\_DEFAULT}}
+
+Loads DLL with the given \arg{name} into memory. The \arg{flags} argument can
+be a combination of the following bits:
+\begin{twocollist}
+\twocolitem{wxDL\_LAZY}{equivalent of RTLD\_LAZY under Unix, ignored elsewhere}
+\twocolitem{wxDL\_NOW}{equivalent of RTLD\_NOW under Unix, ignored elsewhere}
+\twocolitem{wxDL\_GLOBAL}{equivalent of RTLD\_GLOBAL under Unix, ignored elsewhere}
+\twocolitem{wxDL\_VERBATIM}{don't try to append the appropriate extension to
+the library name (this is done by default).}
+\end{twocollist}
+
+Returns \true if the library was successfully loaded, \false otherwise.
+
+\membersection{wxDynamicLibrary::Unload}\label{wxdynamiclibraryunload}
+
+\func{void}{Unload}{\void}
+
+\func{static void}{Unload}{\param{wxDllType }{handle}}
+
+Unloads the library from memory. wxDynamicLibrary object automatically calls
+this method from its destructor if it had been successfully loaded.
+
+The second version is only used if you need to keep the library in memory
+during a longer period of time than the scope of the wxDynamicLibrary object.
+In this case you may call \helpref{Detach}{wxdynamiclibrarydetach} and store
+the handle somewhere and call this static method later to unload it.
+