Search the Community
Showing results for tags 'DLL'.
-
[SOLVED] How to import osc functionality into World ?
kyriakos.marinis posted a topic in C++ Programming
Hello Everyone! Is there anyone who can help me how to import osc functionality into a world? I am trying to make a plugin library based on the Dynamically Loading Library as Plugin example found in the Evaluation kit. I am loading oscdll.dll library with explicit linking in the oscplugin.cpp and trying to compile the oscplugin.cpp (scons) as plugin library but I am getting many errors like the following: C:\Unigine Evaluation Kit\data\core\Unigine.h(136) : error C2065: 'engine' : undeclared identifier C:\Unigine Evaluation Kit\data\core\Unigine.h(35) : error C2058: constant expression is not integral C:\Unigine Evaluation Kit\data\core\Unigine.h(136) : fatal error C1903: unable to recover from previous error(s); or oscplugin.cpp(6) : fatal error C1083: Cannot open include file: 'UniginePlugin.h': No such file or directory stopping compilation scons: *** [oscplugin.dll] Error 2 scons: building terminated because of errors. Furthermore, I am waiting to get the the compiled oscplugin.cpp as a plugin library .dll and load this library as extern_plugin. Is there someone who could help me, please? Or be able to see the big picture of this process and give suggestions? Moreover, can I do this process with the Evaluation kit or I need the SDK? Append, parts of code: typedef void (*OSCOpen_)(void); OSCOpen_ OSCOpenFunc; HISTANCE hinstLib; #define OUTPUT_BUFFER_SIZE 1024 int OSCLinkDLL(void) { hinstLib = LoadLibrary("OSCDll.dll"); if (hinstLib) { OSCOpenFunc = (OSCOpen_) GetProcAddress(hinstLib, "OSCOpen"); return 0; } else return 1; } void OSCOpen(void) { OSCOpenFunc(); } class OscPlugin : public Plugin { public: OscPlugin() {} virtual ~OscPlugin(); virtual int init(); virtual int shutdown(); virtual void update(); } int OscPlugin::init() { Log::warning("OSCOpenFunc init called\n"); Interpreter::addExternFunction("OSCOpenFunc",MakeExternFunction(&OSCOpenFunc)); return 1; } extern "C" UNIGINE_API void *CreatePlugin() { return new OscPlugin(); } extern "C" UNIGINE_API void *ReleasePlugin(void *plugin) { delete static_cast<OscPlugin*>(plugin); }