Interpreter.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace ET
  4. {
  5. public static class Interpreter
  6. {
  7. private const string InterpreterDll = "Interpreter";
  8. [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
  9. public delegate void LogCallback(IntPtr buf, int len);
  10. private static LogCallback logCallback;
  11. [DllImport(InterpreterDll, CallingConvention = CallingConvention.Cdecl)]
  12. private static extern void interpreter_set_log(LogCallback logCallback);
  13. [DllImport(InterpreterDll, CallingConvention = CallingConvention.Cdecl)]
  14. private static extern void interpreter_log([In][MarshalAs(UnmanagedType.LPStr)] string str);
  15. [DllImport(InterpreterDll, CallingConvention = CallingConvention.Cdecl)]
  16. private static extern void interpreter_init([In][MarshalAs(UnmanagedType.LPStr)] string reloadDir, [In][MarshalAs(UnmanagedType.LPStr)] string exeName);
  17. public static void InterpreterSetLog(LogCallback plog)
  18. {
  19. logCallback = plog;
  20. interpreter_set_log(logCallback);
  21. }
  22. public static void InterpreterLog(string str)
  23. {
  24. interpreter_log(str);
  25. }
  26. public static void InterpreterInit([In][MarshalAs(UnmanagedType.LPStr)]string reloadDir, [In][MarshalAs(UnmanagedType.LPStr)]string exeName)
  27. {
  28. interpreter_init(reloadDir, exeName);
  29. }
  30. }
  31. }