For help with general CEGUI usage:- Questions about the usage of CEGUI and its features, if not explained in the documentation.- Problems with the CMAKE configuration or problems occuring during the build process/compilation.- Errors or unexpected behaviour.

I finally managed to get CEGUI working locally, and as a result commited the cegui code, libs, and dlls onto subversion and had another colleague test it.However, as he did so, he got a runtime exception at the first call to CEGUI.We tried to recreate the dll files of CEGUIBase-0_d.dll and CEGUIOpenGLRenderer-0_d.dll, which resulted in his version working.I can't imagine this to be the only way of solving this issue though. This same issue occurs in both debug and release, and having every person who would play the game having to create the dll files would be impossible to ask.

So, my question is, how can we use 1 single dll creation to support all (windows) devices?

Last edited by Anasky on Wed Sep 27, 2017 08:49, edited 1 time in total.

I distributed the 2 dlls of CEGUIBase-0_d.dll and CEGUIOpenGLRenderer-0_d.dll ; as well as freetype_d.dll, glew_d.dll, glfw_d.dll, jpeg_d.dll, libexpat_d.dll, libpng_d.dll, pcre.dll, SILLY_d.dll, and zlib_d.dll.

Yes, I did compile them at the right configurations. Both Debug and Release, both Win32 and x64, are working on my pc locally. None of them are working for him.

Unfortunately, I'm not aware of what the dependency walker is, although I imagine if the exact same folder works for me, then it should be having the appropriate dependencies, even when moving it to his pc?

There are the microsoft VC++ runtime dlls also involved, as well as potentially other "global" dlls on the system. Get dependency walker https://en.wikipedia.org/wiki/Dependency_Walker and then run it on ur sys and on his and see whats missing.

We both use Visual Studio. We both have the exact same settings, configuration, and version of Visual Studio 2017, with the exception of Dark / Light theme. So as for redistributable version, I assume they're identical due to identical visual studio versions.I will try and run it on my other laptop tomorrow, see what results I get from that one and if it will work there (that one uses Windows 7 as well).

I have attached a screenshot of the error.Both debug and release give an error, regardless of whether it's Win32 or x64. If he compiles the dll files for Win32 himself, that one will work, but the others won't. (aka: only locally created dll files work)

The app also crashes on my other laptop, with Windows 7. Ran the dependency walker, and it gave the same result as on my computer (see attachment).

Including the wkernelbase.pdb symbols didn't help much... Attached that screenshot as well :/

EDIT: Apparently I forgot to commit the .pdb file for CEGUIBase-0_d.dll; I'll get back to you once I have the file.

EDIT2: Another screenshot attached. It seems to be going wrong in the XMLParser code, although we can't look at it.

EDIT3: We found it! Apparently CEGUI doesn't crash when it's missing the ExpatParser_d.dll when running locally, but requires it when running on another pc. Adding CEGUICoreWindowRendererSet_d, CEGUIExpatParser_d, and CEGUISILLYImageCodec_d to the Win32/Debug/ folder solved the issue. Thanks a lot Ident

Anasky wrote:EDIT3: We found it! Apparently CEGUI doesn't crash when it's missing the ExpatParser_d.dll when running locally, but requires it when running on another pc. Adding CEGUICoreWindowRendererSet_d, CEGUIExpatParser_d, and CEGUISILLYImageCodec_d to the Win32/Debug/ folder solved the issue. Thanks a lot Ident

Uh, what?!?It needs one parser at least, so if there was none present, it should never have run. But again, thats something that depends exe can be used to find out. It will tell you what dlls are used and also from where.

If I were you I would investigate this further to fully understand what is going on because what you described (although I might be getting somethign there wrong or missing a piece in the picture) aint sounding kosher.

Anasky wrote:EDIT3: We found it! Apparently CEGUI doesn't crash when it's missing the ExpatParser_d.dll when running locally, but requires it when running on another pc. Adding CEGUICoreWindowRendererSet_d, CEGUIExpatParser_d, and CEGUISILLYImageCodec_d to the Win32/Debug/ folder solved the issue. Thanks a lot Ident

Uh, what?!?It needs one parser at least, so if there was none present, it should never have run. But again, thats something that depends exe can be used to find out. It will tell you what dlls are used and also from where.

If I were you I would investigate this further to fully understand what is going on because what you described (although I might be getting somethign there wrong or missing a piece in the picture) aint sounding kosher.

My guess is that by creating the DLLs locally, it will remember a fixed path as to where it was initially created. At the point where it couldn't find the parser at the .exe file location, it'd look at the fixed path and find it over there.