Ok, so plugins work great on Unix, but not on win32. That's because Win32/MSVC expects the right usage of __declspec(dllimport) and __declspec(dllexport) before classes and structs that you want to export across DLL boundaries. That's fine, so I made a new macro and moved it to ut_types.h
ABI_EXPORT so, for *every* class that you folks make from now on and forsee that it might somehow get used across a plugin boundary, declare it like this: class ABI_EXPORT MyClassName Win32 guys, when you're building a particular plugin, you need to #define ABI_DLL somewhere. There is some comments in src/af/util/xp/ut_types.h on all of this. I'm hoping to beef up my comments some more there. I've converted the src/af/util/xp, src/text/ptbl/xp, src/text/fmt/xp, and src/wp/impexp/xp directories over. I'll want to also do the others, but there are a *lot* of classes there... So I hope that this doesn't break anyone's build, esp. on win32 (should be harmless elsewhere). If it does, you've been forewarned - I've just eaten all the donuts. Dom CVS: ---------------------------------------------------------------------- CVS: Enter Log. Lines beginning with `CVS:' are removed automatically CVS: CVS: Committing in . CVS: CVS: Modified Files: CVS: configure.in src/af/util/xp/GNUmakefile.am CVS: src/af/util/xp/Makefile src/af/util/xp/ut_AbiObject.h CVS: src/af/util/xp/ut_AdobeEncoding.h src/af/util/xp/ut_Encoding.h CVS: src/af/util/xp/ut_Language.h src/af/util/xp/ut_PerlBindings.h CVS: src/af/util/xp/ut_base64.h src/af/util/xp/ut_bijection.h CVS: src/af/util/xp/ut_bytebuf.h src/af/util/xp/ut_exception.h CVS: src/af/util/xp/ut_growbuf.h src/af/util/xp/ut_hash.h CVS: src/af/util/xp/ut_iconv.h src/af/util/xp/ut_idle.h CVS: src/af/util/xp/ut_mbtowc.h src/af/util/xp/ut_misc.h CVS: src/af/util/xp/ut_pair.h src/af/util/xp/ut_rbtree.h CVS: src/af/util/xp/ut_set.h src/af/util/xp/ut_stack.h CVS: src/af/util/xp/ut_string_class.h src/af/util/xp/ut_stringbuf.h CVS: src/af/util/xp/ut_svg.h src/af/util/xp/ut_timer.h CVS: src/af/util/xp/ut_types.h src/af/util/xp/ut_vector.h CVS: src/af/util/xp/ut_wctomb.h src/af/util/xp/ut_worker.h CVS: src/af/xap/xp/xap_Module.h src/text/fmt/xp/fb_Alignment.h CVS: src/text/fmt/xp/fb_ColumnBreaker.h CVS: src/text/fmt/xp/fb_LineBreaker.h src/text/fmt/xp/fg_Graphic.h CVS: src/text/fmt/xp/fg_GraphicRaster.h CVS: src/text/fmt/xp/fg_GraphicVector.h CVS: src/text/fmt/xp/fl_AutoNum.h src/text/fmt/xp/fl_BlockLayout.h CVS: src/text/fmt/xp/fl_DocLayout.h CVS: src/text/fmt/xp/fl_DocListener.h src/text/fmt/xp/fl_Layout.h CVS: src/text/fmt/xp/fl_SectionLayout.h src/text/fmt/xp/fp_Column.h CVS: src/text/fmt/xp/fp_FieldListLabelRun.h CVS: src/text/fmt/xp/fp_Line.h src/text/fmt/xp/fp_Page.h CVS: src/text/fmt/xp/fp_PageSize.h src/text/fmt/xp/fp_Run.h CVS: src/text/fmt/xp/fp_TextRun.h src/text/fmt/xp/fv_View.h CVS: src/text/ptbl/xp/fd_Field.h src/text/ptbl/xp/pd_Document.h CVS: src/text/ptbl/xp/pd_Style.h src/text/ptbl/xp/pf_Frag.h CVS: src/text/ptbl/xp/pf_Frag_FmtMark.h CVS: src/text/ptbl/xp/pf_Frag_Object.h CVS: src/text/ptbl/xp/pf_Frag_Strux.h CVS: src/text/ptbl/xp/pf_Frag_Strux_Block.h CVS: src/text/ptbl/xp/pf_Frag_Strux_Section.h CVS: src/text/ptbl/xp/pf_Frag_Text.h CVS: src/text/ptbl/xp/pf_Fragments.h src/text/ptbl/xp/pl_Listener.h CVS: src/text/ptbl/xp/pp_AttrProp.h src/text/ptbl/xp/pp_Property.h CVS: src/text/ptbl/xp/pp_TableAttrProp.h CVS: src/text/ptbl/xp/pt_PieceTable.h src/text/ptbl/xp/pt_Types.h CVS: src/text/ptbl/xp/pt_VarSet.h src/text/ptbl/xp/px_CR_FmtMark.h CVS: src/text/ptbl/xp/px_CR_FmtMarkChange.h CVS: src/text/ptbl/xp/px_CR_Glob.h src/text/ptbl/xp/px_CR_Object.h CVS: src/text/ptbl/xp/px_CR_ObjectChange.h CVS: src/text/ptbl/xp/px_CR_Span.h CVS: src/text/ptbl/xp/px_CR_SpanChange.h CVS: src/text/ptbl/xp/px_CR_Strux.h CVS: src/text/ptbl/xp/px_CR_StruxChange.h CVS: src/text/ptbl/xp/px_ChangeHistory.h CVS: src/text/ptbl/xp/px_ChangeRecord.h src/wp/impexp/xp/ie_exp.h CVS: src/wp/impexp/xp/ie_exp_AWT.h CVS: src/wp/impexp/xp/ie_exp_AbiWord_1.h CVS: src/wp/impexp/xp/ie_exp_Applix.h CVS: src/wp/impexp/xp/ie_exp_BZ2Abw.h CVS: src/wp/impexp/xp/ie_exp_DocBook.h CVS: src/wp/impexp/xp/ie_exp_HRText.h CVS: src/wp/impexp/xp/ie_exp_HTML.h src/wp/impexp/xp/ie_exp_ISCII.h CVS: src/wp/impexp/xp/ie_exp_KWord_1.h CVS: src/wp/impexp/xp/ie_exp_LaTeX.h src/wp/impexp/xp/ie_exp_MIF.h CVS: src/wp/impexp/xp/ie_exp_MsWord_97.h CVS: src/wp/impexp/xp/ie_exp_PalmDoc.h CVS: src/wp/impexp/xp/ie_exp_RTF.h CVS: src/wp/impexp/xp/ie_exp_RTF_AttrProp.h CVS: src/wp/impexp/xp/ie_exp_RTF_listenerGetProps.h CVS: src/wp/impexp/xp/ie_exp_RTF_listenerWriteDoc.h CVS: src/wp/impexp/xp/ie_exp_Text.h src/wp/impexp/xp/ie_exp_WML.h CVS: src/wp/impexp/xp/ie_exp_XSL-FO.h src/wp/impexp/xp/ie_imp.h CVS: src/wp/impexp/xp/ie_imp_AbiWord_1.h CVS: src/wp/impexp/xp/ie_imp_Applix.h CVS: src/wp/impexp/xp/ie_imp_BZ2Abw.h CVS: src/wp/impexp/xp/ie_imp_ClarisWorks.h CVS: src/wp/impexp/xp/ie_imp_DocBook.h CVS: src/wp/impexp/xp/ie_imp_GZipAbiWord.h CVS: src/wp/impexp/xp/ie_imp_ISCII.h CVS: src/wp/impexp/xp/ie_imp_KWord_1.h CVS: src/wp/impexp/xp/ie_imp_MIF.h CVS: src/wp/impexp/xp/ie_imp_MSWrite.h CVS: src/wp/impexp/xp/ie_imp_MsWord_97.h CVS: src/wp/impexp/xp/ie_imp_PalmDoc.h CVS: src/wp/impexp/xp/ie_imp_Psion.h src/wp/impexp/xp/ie_imp_RTF.h CVS: src/wp/impexp/xp/ie_imp_Text.h src/wp/impexp/xp/ie_imp_WML.h CVS: src/wp/impexp/xp/ie_imp_WordPerfect.h CVS: src/wp/impexp/xp/ie_imp_XHTML.h src/wp/impexp/xp/ie_imp_XML.h CVS: src/wp/impexp/xp/ie_imp_XSL-FO.h CVS: Removed Files: CVS: src/af/util/xp/ut_pool.cpp src/af/util/xp/ut_pool.h CVS: ----------------------------------------------------------------------
