public BuildToolKernel(string platform)
        {
            library_  = new Library(UnityEngine.Application.dataPath + "/Editor/NoesisGUI/BuildTool/Noesis");
            platform_ = platform.ToLower();

            try
            {
                RegisterFunctions(library_);
                Error.RegisterFunctions(library_);
                Log.RegisterFunctions(library_);
                _Extend.RegisterFunctions(library_);
                _NoesisGUI_PINVOKE.RegisterFunctions(library_);

                registerLogCallback_(OnLog);
                _Extend.RegisterCallbacks();

                initKernel_(platform_, UnityEngine.Application.dataPath, UnityEngine.Application.streamingAssetsPath);
                Error.Check();

                Log.Info(String.Format("Host is Unity v{0}", UnityEngine.Application.unityVersion));

                _Extend.Initialized(true);
                _Extend.RegisterNativeTypes();
            }
            catch (Exception e)
            {
                Dispose();
                throw e;
            }
        }