Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Entry Point Not Found

1 view
Skip to first unread message

Petar Popara

unread,
Oct 4, 2005, 11:13:01 AM10/4/05
to

While compiling my firefox plugin using good old (read: buggy :) VC++ 6.0 I
don't get any error messages. But when I load my plugin into firefox I got
this error:

---------------------------
firefox.exe - Entry Point Not Found
---------------------------
The procedure entry point ??RnsQueryInterface@@UBEIABUnsID@@PAPAX@Z could
not be located in the dynamic link library xpcom.dll.
---------------------------
OK
---------------------------

By examining my dll (plugin) I can see that it exports:
??RnsQueryInterface@@QBEIABUnsID@@PAPAX@Z (it differes in only 1 letter).

Well, I got the above error only somethimes (not allways). Somethimes linker
links my dll OK, somethimes don't. I'm still searching for the pattern.

I hope you (more expirienced) guys could tell me where to start looking and
what to pay attention.

I have asked this question on Mozilla/Firefox mailing lists, but without
answer.


George Mileka

unread,
Oct 4, 2005, 1:00:38 PM10/4/05
to
Petar,

I would expect the different letter (Q vs. U) to be a result of a different declaration. Firefox.exe is expecting something, and you are declaring something else.

I would use undname.exe (un-decorate name) to translate ??RnsQueryInterface@@UBEIABUnsID@@PAPAX@Z to something I can compare with my declaration.

Hope this helps.

Thanks,
George Mileka
VC++ Libraries Team

This posting is provided "AS IS" with no warranties, and confer no rights.

Petar Popara

unread,
Oct 6, 2005, 7:49:14 AM10/6/05
to

> I would expect the different letter (Q vs. U) to be a result of a
> different declaration. Firefox.exe is expecting something, and you are
> declaring something else.
>
> I would use undname.exe (un-decorate name) to translate
> ??RnsQueryInterface@@UBEIABUnsID@@PAPAX@Z to something I can compare with
> my declaration.

The output from undname.exe is:

??RnsQueryInterface@@UBEIABUnsID@@PAPAX@Z == public: virtual unsigned int
__thiscall nsQueryInterface::operator()(struct nsID const &,void * *)const

The other output is the same, just without "virtual" keyword. In Debug build
VC6 links (exports) wrong (bad) functions (calss member), but in Release
build VC6 links correctly exports.

What should I do?

This is class (and member function) declaration:

class NS_COM nsQueryInterface : public nsCOMPtr_helper
{
public:
nsQueryInterface( nsISupports* aRawPtr, nsresult* error )
: mRawPtr(aRawPtr),
mErrorPtr(error)
{
// nothing else to do here
}

virtual nsresult operator()( const nsIID& aIID, void** ) const;

private:
nsISupports* mRawPtr;
nsresult* mErrorPtr;
};


0 new messages