John Nason wrote:
> 
> Hello,
> I'm having a tough problem, windows related... I can do a createInstance on
> my own component when I use my debug version of Mozilla(.93). It is called
> from a javascript that is registered in the chrome. When I use my Release
> version or use Netscape 6.1, my dll does not even get loaded(the script does
> get executed). There seems to be a difference somewhere with a XPCOM
> preprocessor definition or something. I link and include against
> win32_o.obj. When I build the release version of my dll(with win32_o.obj) I
> can still load my dll with the debug version of Mozilla, but not release. It
> has to be related to createInstance... I am listed in components.reg and so
> on so it is not a lookup problem. I think there is a match up problem
> between my dll and the release Mozilla, like we built differently or
> something.
> Thanks for your help,
> -john

Two registration-like things have to happen before a component
can be instantiated from JS... The dll needs to have been
autoregistered and the .xpt file also needs to have been
autoregistered. For debug builds the application will scan for
new dll and xpt files in the components directory on each
startup. For Release builds this is not the case. You need to
force this by: running regxpcom or deleting component.reg and
xpti.dat before startup. Both these autoreg activities can also
be triggered programatically at runtime via a method on the
component manager object or (in newer builds) by calling
navigator.plugins.refresh(). 

Are you sure your component got correctly registered in your
*release* component.reg? You can easily check for your xpt file
in xpti.dat since this is a human readable file (but do yourself
a favor... don't edit that file). You sound like you are sure
that registration issues are not the problem. But these really
are the mostly likely causes of what you describe.

John.

Reply via email to