<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML ><HEAD ><TITLE >C++ dlopen mini HOWTO</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="NEXT" TITLE="Introduction" HREF="intro.html"></HEAD ><BODY CLASS="article" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="ARTICLE" ><DIV CLASS="TITLEPAGE" ><H1 CLASS="title" ><A NAME="AEN2" ></A >C++ dlopen mini HOWTO</H1 ><H3 CLASS="author" ><A NAME="AEN4" >Aaron Isotton</A ></H3 ><DIV CLASS="affiliation" ><DIV CLASS="address" ><P CLASS="address" ><TT CLASS="email" ><<A HREF="mailto:aaron@isotton.com" >aaron@isotton.com</A >></TT ></P ></DIV ></DIV ><P CLASS="pubdate" >2006-03-16<BR></P ><DIV CLASS="revhistory" ><TABLE WIDTH="100%" BORDER="0" ><TR ><TH ALIGN="LEFT" VALIGN="TOP" COLSPAN="3" ><B >Revision History</B ></TH ></TR ><TR ><TD ALIGN="LEFT" >Revision 1.10</TD ><TD ALIGN="LEFT" >2006-03-16</TD ><TD ALIGN="LEFT" >Revised by: AI</TD ></TR ><TR ><TD ALIGN="LEFT" COLSPAN="3" >Changed the license from the GFDL to the GPL. Fixed usage of dlerror; thanks to Carmelo Piccione. Using a virtual destructor in the example; thanks to Joerg Knobloch. Added Source Code section. Minor fixes.</TD ></TR ><TR ><TD ALIGN="LEFT" >Revision 1.03</TD ><TD ALIGN="LEFT" >2003-08-12</TD ><TD ALIGN="LEFT" >Revised by: AI</TD ></TR ><TR ><TD ALIGN="LEFT" COLSPAN="3" >Added reference to the GLib Dynamic Module Loader. Thanks to G. V. Sriraam for the pointer.</TD ></TR ><TR ><TD ALIGN="LEFT" >Revision 1.02</TD ><TD ALIGN="LEFT" >2002-12-08</TD ><TD ALIGN="LEFT" >Revised by: AI</TD ></TR ><TR ><TD ALIGN="LEFT" COLSPAN="3" >Added FAQ. Minor changes</TD ></TR ><TR ><TD ALIGN="LEFT" >Revision 1.01</TD ><TD ALIGN="LEFT" >2002-06-30</TD ><TD ALIGN="LEFT" >Revised by: AI</TD ></TR ><TR ><TD ALIGN="LEFT" COLSPAN="3" >Updated virtual destructor explanation. Minor changes.</TD ></TR ><TR ><TD ALIGN="LEFT" >Revision 1.00</TD ><TD ALIGN="LEFT" >2002-06-19</TD ><TD ALIGN="LEFT" >Revised by: AI</TD ></TR ><TR ><TD ALIGN="LEFT" COLSPAN="3" >Moved copyright and license section to the beginning. Added terms section. Minor changes.</TD ></TR ><TR ><TD ALIGN="LEFT" >Revision 0.97</TD ><TD ALIGN="LEFT" >2002-06-19</TD ><TD ALIGN="LEFT" >Revised by: JYG</TD ></TR ><TR ><TD ALIGN="LEFT" COLSPAN="3" >Entered minor grammar and sentence level changes.</TD ></TR ><TR ><TD ALIGN="LEFT" >Revision 0.96</TD ><TD ALIGN="LEFT" >2002-06-12</TD ><TD ALIGN="LEFT" >Revised by: AI</TD ></TR ><TR ><TD ALIGN="LEFT" COLSPAN="3" >Added bibliography. Corrected explanation of extern functions and variables.</TD ></TR ><TR ><TD ALIGN="LEFT" >Revision 0.95</TD ><TD ALIGN="LEFT" >2002-06-11</TD ><TD ALIGN="LEFT" >Revised by: AI</TD ></TR ><TR ><TD ALIGN="LEFT" COLSPAN="3" >Minor improvements.</TD ></TR ></TABLE ></DIV ><DIV ><DIV CLASS="abstract" ><A NAME="AEN52" ></A ><P ></P ><P >How to dynamically load C++ functions and classes using the <TT CLASS="function" >dlopen</TT > API.</P ><P ></P ></DIV ></DIV ><HR></DIV ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT >1. <A HREF="intro.html" >Introduction</A ></DT ><DD ><DL ><DT >1.1. <A HREF="intro.html#copyright" >Copyright and License</A ></DT ><DT >1.2. <A HREF="intro.html#disclaimer" >Disclaimer</A ></DT ><DT >1.3. <A HREF="intro.html#credits" >Credits / Contributors</A ></DT ><DT >1.4. <A HREF="intro.html#feedback" >Feedback</A ></DT ><DT >1.5. <A HREF="intro.html#AEN91" >Terms Used in this Document</A ></DT ></DL ></DD ><DT >2. <A HREF="theproblem.html" >The Problem</A ></DT ><DD ><DL ><DT >2.1. <A HREF="theproblem.html#mangling" >Name Mangling</A ></DT ><DT >2.2. <A HREF="theproblem.html#AEN137" >Classes</A ></DT ></DL ></DD ><DT >3. <A HREF="thesolution.html" >The Solution</A ></DT ><DD ><DL ><DT >3.1. <A HREF="thesolution.html#externC" ><TT CLASS="literal" >extern "C"</TT ></A ></DT ><DT >3.2. <A HREF="thesolution.html#loadingfunctions" >Loading Functions</A ></DT ><DT >3.3. <A HREF="thesolution.html#loadingclasses" >Loading Classes</A ></DT ></DL ></DD ><DT >4. <A HREF="source.html" >Source Code</A ></DT ><DT >5. <A HREF="faq.html" >Frequently Asked Questions</A ></DT ><DT >6. <A HREF="seealso.html" >See Also</A ></DT ><DT ><A HREF="b304.html" >Bibliography</A ></DT ></DL ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" > </TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="intro.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" > </TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Introduction</TD ></TR ></TABLE ></DIV ></BODY ></HTML >