Problems with DLL (Vector2) over VC7.1 using Ogre;

For help with anything that CEGUI doesn't offer straight out-of-the-box, e.g.:
- Implementation of new features, such as new Core classes, widgets, WindowRenderers, etc. ...
- Modification of any existing features for specific purposes
- Integration of CEGUI in new engines or frameworks and writing of new plugins (Renderer, Parser, ...) or modules

Moderators: CEGUI MVP, CEGUI Team

HeavyStorm
Just popping in
Just popping in
Posts: 11
Joined: Mon Oct 31, 2005 21:27
Contact:

Problems with DLL (Vector2) over VC7.1 using Ogre;

Postby HeavyStorm » Wed Nov 09, 2005 18:33

The problem is pretty much what I described on the subject. I compiled the 0.4 version of CEGUI, got the libraries and the dlls, inserted then over the right folders (I'm completly sure), and compiled the Ogre code.

The problem is, my dear application is unable to find the method "Vector2"in the dll. I receive one of those disgusting linker error messages that goes:

"Unable to find the entry of the procedure ??1Vector2@CEGUI@@QAE@XZ in the dinamic linked library CEGUIBase_d.dll"

Anyone knows what I can possibly be doing wrongly? I compiled the DLL from the 0.4 package. The code that I'm compiling was executing an older version of the CEGUI, but I see no reason for it to raise such an error.

Thanks for reading, hope someone can help me. I really need this new version working.

User avatar
khariq
Just popping in
Just popping in
Posts: 9
Joined: Mon Mar 21, 2005 14:40

Re: Problems with DLL (Vector2) over VC7.1 using Ogre;

Postby khariq » Wed Nov 09, 2005 21:22

I had this same bug and it took me 3 days to find. The problem is the input library (the .lib the compiler generates when it builds a DLL that exports symbols), if the version your target application is linking to is not the exact lib built with the DLL that is loaded at run time you get the error described below. This is because the C++ name mangler might generate a different name when it is recompiled, I'm not 100% sure how that thing does its voodoo.

Ogre is set up to look in its own includes directory for all CEGUI headers and its own lib directory for all CEGUI linking. You have two options:
1 - Put the CEGUI folder as a higher priority search folder, or
2 - do what the Ogre folks say and wait for 1.1 (Dag) to use CEGUI 0.4.

Are you certain your own application is looking in all the right folders for the input library?

HeavyStorm
Just popping in
Just popping in
Posts: 11
Joined: Mon Oct 31, 2005 21:27
Contact:

Re: Problems with DLL (Vector2) over VC7.1 using Ogre;

Postby HeavyStorm » Wed Nov 16, 2005 17:12

Thanks a lot for the feedback. I double checked the libs, but I'm sure the program is linking with the 0.4 version(To do this, I pulled out every path specification that lead to Ogre, and inserted the right lib at the program folder - and checked by removing it and trying to compile. It doesn't).

So now it's like I have the wrong CEGUIBase_d.lib, althought it's the one I compiled myself with the 0.4 pack. Something is probably very wrong, but no ideia what.

I see that I should wait for the 1.1 version of Ogre, but there is a certain urgency in what I am doing, and I think only 0.4 is able to solve certain problems. Anyway, I will try to use an alternative solution in the meantime.

If anyone else has an ideia about this, please post here. Thanks to those who took time to read this.

User avatar
khariq
Just popping in
Just popping in
Posts: 9
Joined: Mon Mar 21, 2005 14:40

Re: Problems with DLL (Vector2) over VC7.1 using Ogre;

Postby khariq » Wed Nov 16, 2005 18:48

If you're sure you linked against the correct lib, make sure the correct DLL is being loaded when the app launches. You can do by checking the date. If you build 0.4.0 yourself it will be whatever date/time you built it. The CEGUIBase_d.dll that ships with the OgreSDK is dated 9/25/2005, if its that one, you're loading the wrong DLL at launch. Good hunting.

User avatar
lindquist
CEGUI Team (Retired)
Posts: 770
Joined: Mon Jan 24, 2005 21:20
Location: Copenhagen, Denmark

Re: Problems with DLL (Vector2) over VC7.1 using Ogre;

Postby lindquist » Wed Nov 16, 2005 20:42

Why not just delete all the CEGUI files supplied with Ogre except of course for the renderer, and recompile CEGUI 0.4?

Seems to me like the easiest solution to this problem!

HeavyStorm
Just popping in
Just popping in
Posts: 11
Joined: Mon Oct 31, 2005 21:27
Contact:

Re: Problems with DLL (Vector2) over VC7.1 using Ogre;

Postby HeavyStorm » Tue Dec 13, 2005 19:20

Hope this helps somebody else. I've tried all the solutions here before I could finally understand what is happening. The OgreCEGUIRenderer is NOT compatible with CEGUI 0.4 (unfortunately) and, as long as I can see, the only solution is to write your own renderer (which isn't as complex as it sounds). Alas, I could not afford to lose the time to do that (since I'm still mistified by some CEGUI stuff).

This conclusion is backed with some stuff I've read over the OGRE forums. If anyone knows better, please correct me.

User avatar
lindquist
CEGUI Team (Retired)
Posts: 770
Joined: Mon Jan 24, 2005 21:20
Location: Copenhagen, Denmark

Re: Problems with DLL (Vector2) over VC7.1 using Ogre;

Postby lindquist » Tue Dec 13, 2005 21:42

rebuild the renderer and you should be good to go.
It's really pretty obvious, and has been covered many times on this forum. a HOWTO has even been added to the wiki that describes how to upgrade the SDK...


Return to “Modifications / Integrations / Customisations”

Who is online

Users browsing this forum: No registered users and 3 guests