delphi dll是否可用var参数_GO 调用 DLL 类库

784c73181dc62ecce78cf11482f5f8df.png

最近一个项目需要用到Go调用C++的DLL类库 这里记录一下坑

DLL 原型

GetDllVersion函数原型:unsigned int GetDllVersion(void);获取dll版本信息返回值:DLL版本信息((unsigned int),高字节为主版本信息,低字节为子版本信息=====================================================================SetQianNiuPath函数原型:int SetQianNiuPath(const char * Path, unsigned int PathLen);设置千牛安装路径(DLL不保存路径)参数: Path,千牛安装路径(最长不要超过255个字符) PathLen,安装你路径长度返回值:0 成功 -1 路径存在问题 -2 路径文件夹不存在=====================================================================

GO调用DLL

package mainimport ( "fmt" "syscall" "unsafe")var ( multiQianniuLogin = syscall.NewLazyDLL("MultiQianniuLoginDll.dll") getDllVersion = multiQianniuLogin.NewProc("GetDllVersion"))// 获取字符串的长度指针func lenPtr(s string) uintptr { return uintptr(len(s))}// 获取数字的指针func intPtr(n int) uintptr { return uintptr(n)}// 获取字符串的指针func strPtr(s string) uintptr { return uintptr(unsafe.Pointer(syscall.StringBytePtr(s)))}func main() { var ret uintptr var err error ret, _, err = getDllVersion.Call() fmt.Printf("%d.%d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值