Hello, I decided to try ColibriGUI recently and managed to build and run the sample successfully.
Then I tried implementing it in my project, and my 1st step was replacing HlmsUnlit with Hlms Colibri in the function "registerHlms()", but I got the errors:
Code: Select all
1>main.obj : error LNK2019: unresolved external symbol "public: __cdecl Ogre::HlmsColibri::HlmsColibri(class Ogre::Archive *,class std::vector<class Ogre::Archive *,class std::allocator<class Ogre::Archive *> > *)"
1>main.obj : error LNK2019: unresolved external symbol "public: static void __cdecl Ogre::HlmsColibri::getDefaultPaths(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > &)"
I figured this was caused by my VS project settings, so I created a test project with only 1 file "main.cpp":
Code: Select all
#include <windows.h>
#include <windowsx.h>
#include <ole2.h>
#include <commctrl.h>
#include <shlwapi.h>
#include <fstream>
#include <thread>
#include <strsafe.h>
#include "OgreAbiUtils.h"
#include "OgreArchiveManager.h"
#include "OgreCamera.h"
#include "OgreConfigFile.h"
#include "OgreRoot.h"
#include "OgreWindow.h"
#include "OgreHlmsManager.h"
#include "OgreHlmsPbs.h"
#include "OgreHlmsUnlit.h"
#include "OgreHlmsDiskCache.h"
#include "OgreOverlay.h"
#include "OgreOverlayContainer.h"
#include "OgreOverlayManager.h"
#include "OgreOverlaySystem.h"
#include "OgreTextAreaOverlayElement.h"
#include "OgreBorderPanelOverlayElement.h"
#include "OgreBillboardSet.h"
#include "OgreRectangle2D2.h"
#include "OgreSingleton.h"
#include "OgreRenderSystem.h"
#include "OgreTextureGpu.h"
#include "OgreTextureGpuManager.h"
#include "OgreSceneManager.h"
#include "OgreMeshManager.h"
#include "OgreMeshManager2.h"
#include "OgreGpuProgramManager.h"
#include "OgreLogManager.h"
#include "OgrePlatformInformation.h"
#include "Compositor/OgreCompositorManager2.h"
#include "OgreWindowEventUtilities.h"
#include "System/Android/AndroidSystems.h"
#include "OgreItem.h"
#include "Animation/OgreSkeletonAnimation.h"
#include "Animation/OgreSkeletonInstance.h"
#include "Animation/OgreTagPoint.h"
#include "Threading/YieldTimer.h"
#include "OgreTimer.h"
#include "OgrePixelFormatGpuUtils.h"
#include "OgreTextureBox.h"
#include "OgreHardwareBufferManager.h"
#include "OgreMesh.h"
#include "OgreMesh2.h"
#include "OgreHlmsPbsDatablock.h"
#include "OgreHlmsSamplerblock.h"
#include "OgreHlmsUnlitDatablock.h"
//---------------------------------------------------------------------------------------------------------------------
#include "SDL.h"
#include "ColibriGui/ColibriManager.h"
#include "ColibriGui/Text/ColibriShaperManager.h"
#include "ColibriGui/Text/ColibriShaper.h"
#include "ColibriGui/Ogre/CompositorPassColibriGuiProvider.h"
#include "ColibriGui/Ogre/OgreHlmsColibri.h"
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR strCmdLine, INT nCmdShow)
#else
int main(int argc, const char* argv[])
#endif
{
Ogre::HlmsColibri* hlmsColibri = 0;
Ogre::String mainFolderPath;
Ogre::StringVector libraryFoldersPaths;
Ogre::HlmsColibri::getDefaultPaths(mainFolderPath, libraryFoldersPaths);
return 0;
}
After that, I copied the "ColibriGui" project's property settings to this new test project.
However, I still get the error:
Code: Select all
1>main.obj : error LNK2019: unresolved external symbol "public: static void __cdecl Ogre::HlmsColibri::getDefaultPaths(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > &)"
The test project does have "calling convention" set to /Gd and was linked to the same libs as "ColibriGui" project.
I'm kinda stuck at this point, anyone got an idea?