搜索
查看: 969|回复: 2

go语言生成DLL问题

[复制链接]

8

主题

19

帖子

145

积分

一级会员

Rank: 2

积分
145
发表于 2018-6-14 10:41:37 | 显示全部楼层 |阅读模式
源码就是,实例源码

import console;
import golang;

//创建Go编译器
var go = golang();

//Go源码与字符串都是UTF-8编码,跟aardio一样很方便
string.save("/hello.go",`
package main

import "C"
import "fmt"

//export SayHello
func SayHello(name string) {
    fmt.Printf("Go says: %s!\n", name)
}

func main() {
   //DLL入口函数,没有也要写个空的
} `)

//编译Go源码生成DLL文件
go.buildShared("/hello.go","/hello.dll");

//加载Go编译的DLL,注意要指定cdecl调用约定
var dll = raw.loadDll("/hello.dll",,"cdecl");

//直接就可以调用DLL里的函数,不用声明
console.open();
var str = "必须在Go函数名前面加上 export 函数名的注释才能导出函数";
dll.SayHello(str,#str);

console.log( n )
console.pause();
  

go 语言编译器也下载成功了,运行后提示找不到dll
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2018-6-14 15:31:07 | 显示全部楼层
注意看教程说明:Go语言编译DLL要先安装GCC。
这应当是Go语言的入门知识,找个教程自己先了解一下。

你当然要先生成DLL,aardio才能调用。
回复

使用道具 举报

4

主题

63

帖子

478

积分

二级会员

Rank: 3Rank: 3

积分
478
发表于 2018-6-14 15:40:33 | 显示全部楼层
先安装mingw-w64。

以下内容来自库函数文档:

golangObject.buildShared("源文件文件路径","输出文件路径")
执行go build命令生成DLL动态库,
参数@1必须指定要编译的代码文件,可选指定输出dll文件路径,
可增加多个参数

64位系统需要先安装mingw-w64,https://sourceforge.net/projects/mingw-w64
32位系统可安装http://tdm-gcc.tdragon.net/download

注意每个Go导出函数前面都要加上 //export 要导出的函数名
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-10-19 15:31 , Processed in 0.062500 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表