public static void LoadLib() { lock (syncRoot) { if (initOnce) { return; } nativeModuleLoader = new NativeModuleLoader("pixellib01", "pixellib01.dll"); if (!nativeModuleLoader.LoadRequestProcs(typeof(NativePixelLibInterOp))) { return; } //------------------------------- //1. get version int version = libGetVersion(); //2. callback for pixellib managedListener = new ManagedListenerDel(HandleCallFromNativePixelLib); myCallBackDelegate = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(managedListener); int regResult = registerMxCallBack(myCallBackDelegate, 0); //3. test call back var result2 = testCallBack(); //------------------------------- //ok //start graphic surface //------------------------------- initOnce = true; } }
//------------------------------------------------- public static void LoadLib() { lock (syncRoot) { if (initOnce) { return; } //-------------------------- //change location of dll ... //or embeded as resource file //-------------------------- nativeModuleLoader = new NativeModuleLoader("libagg", "lion.dll"); if (!nativeModuleLoader.LoadRequestProcs(typeof(NativeAggInterOp))) { return; } //1. get version int version = libGetVersion(); //2. callback for pixellib managedListener = new ManagedListenerDel(HandleCallFromNativePixelLib); unmangedCallBack = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(managedListener); int regResult = registerMxCallBack(unmangedCallBack, 0); //3. test call back var result2 = testCallBack(); initOnce = true; } }
static void RegisterManagedListener(ManagedListenerDel mListenerDel) { RegisterManagedCallback( System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(mListenerDel), (int)ManagedCallbackKind.Listener); }
static NativeV8JsInterOp() { //prepare engineListenerDel = new ManagedListenerDel(EngineListener_Listen); }