plugin_test.go 613 B

123456789101112131415161718192021222324252627282930
  1. package test
  2. import (
  3. "Yunlot/logs"
  4. "plugin"
  5. "testing"
  6. )
  7. func TestNameplugin(t *testing.T) {
  8. // 根据库的存放路径加载库
  9. p, err := plugin.Open("/var/lib/docker/volumes/yunlotso/_data/1698289330654.so")
  10. if err != nil {
  11. println(err)
  12. logs.PrintlnError("打开 SO 失败:", err)
  13. }
  14. // 查找库导出信息
  15. s, err := p.Lookup("T")
  16. if err != nil {
  17. println(err)
  18. panic(any(err))
  19. }
  20. // 类型转换
  21. f := s.(func(t string, b []byte) string)("aaaaaaa", []byte("1234567"))
  22. // 开始处理
  23. // 开始处理
  24. logs.Println("协议后:", f)
  25. logs.Println("首字符:", string("123"[0]))
  26. }