有时候我们希望将dll嵌入到程序内部,以提高程序的安全性,这里我写的一个开源memorydll模块。

首先 go get github.com/nkbai/go-memorydll

然后在需要的时候 import "go-memorydll"即可,

使用起来也非常简单,这里从test例子中摘取.

testdll,_:=base64.StdEncoding.DecodeString(testdllbase64)
dll,err:=
memorydll.NewDLL(testdll,"example.dll");
if err!=nil{
t.Error(err)
return
}
proc,err:=dll.FindProc("gcd")
if err!=nil{
t.Error(err)
return
}
result,_,_:=proc.Call(uintptr(4),uintptr(8))
//fmt.Println("rsult=",result)
if int(result)!=4{
t.Error("gcd calc error")
}

 

注意的是,结束的时候记得release相关模块

最新文章

  1. tn文本分析语言(三):高级语法
  2. java--UDP屏幕广播代码
  3. android:TableLayout表格布局详解
  4. link和@import的区别
  5. VBS操作Excel常见方法
  6. logcat保存当前应用程序的日志并上传服务器或指定邮箱
  7. 5种你未必知道的JavaScript和CSS交互的方法
  8. Adobe Illustrator CS6 绿色简体中文版下载地址
  9. POJ3207+tarjan+2-sat
  10. qt: flush: BitBlt failed
  11. Oracle EBS-SQL (PO-12):检查期间请购单的下达记录数.sql
  12. vbs 截图
  13. CSS3 基础知识[转载minsong的博客]
  14. 201521123003《Java程序设计》第12周学习总结
  15. 【TCP网络协议问题】
  16. net core体系-3再次认识net core
  17. QeePHP View视图的默认变量与新增变量
  18. Oracle Function:TO_CHAR
  19. redis 学习笔记(一)
  20. UVA 10328(DP,大数,至少连续)

热门文章

  1. java数字游戏基础篇
  2. 圆周率的现代计算机求法(C语言) Lebal:research
  3. thread_local变量
  4. linux输入子系统之按键驱动
  5. js中的class
  6. springboot成神之——RestTemplate访问Rest
  7. C语言运算符优先级和口诀 (转)
  8. HTTP直接请求webService
  9. SkyBox
  10. C# 堆和栈的区别?