I didn't specify in my previous post, but my test was run with a release build with no debugger attached. Global constructor was only called once.
On Fri, Oct 26, 2012 at 3:13 PM, Matt Lind <ml...@carbinestudios.com> wrote: > You mean like the .spdl and .preset formats? > > > > That’s what XSI v1.x thru XSI 4.x used until the self installing stuff came > online. There were all sorts of issues with unregistering plugins from the > system, and dependencies with scenes. A separate file had to be maintained > to keep track of what was installed, but it often became corrupted. I’m > glad the self installing stuff came online to replace it. > > > > Matt > > > > > > > > From: softimage-boun...@listproc.autodesk.com > [mailto:softimage-boun...@listproc.autodesk.com] On Behalf Of jo benayoun > Sent: Friday, October 26, 2012 9:28 AM > > > To: softimage@listproc.autodesk.com > Subject: Re: SDK: When *exactly* does XSIUnloadPlugin get called > > > > I guess the plugin is loaded once for discovering and registration (plugin > manager), and then reloaded for getting the actual features (actual > extension of features). > > > Usually, plugin systems use a specification file for each new plugin (xml or > other) that is in charge of describing (description, name, version, author, > ...) and register items (commands, windows, ...) plus the actual plugin > where the Load and Unload functions are only called once. Wouldnt be great > to have something similar for XSI ? > > -- jo > > > > > 2012/10/26 Luc-Eric Rousseau <luceri...@gmail.com> > > sounds like if you put some code in the constructor of a global > variable, then you'd be called twice per xsi session, since your dll > will be loaded and unloaded twice? > > > On Fri, Oct 26, 2012 at 9:34 AM, Marc-Andre Belzile > <marc-andre.belz...@autodesk.com> wrote: >> Sorry for not being clear enough. When a plugin is loaded at startup or >> through LoadPlugin, all plugin items are registered through XSILoadPlugin >> and then the dll is unloaded by XSI *without* calling XSIUnloadPlugin. >> Anything allocated in the current dll process will be zapped by the OS at >> this point. The plugin dll will be loaded back again when one of the >> registered plugin item is required by XSI, and in this case XSILoadPlugin >> *won't* be called again. So if you allocated objects or resources in the >> plugin dll process through XSILoadPlugin, they will not be available when >> the dll is loaded back. >> >> -mab > >