hello world

golang 编译为dll 的方法

之前一直再找如何将geojson 转为 svg 格式的数据,看到github上大多都是js来转的,只有一篇是golang来做的,想来把它封成dll 给c#、c++ 调用,网上查了很多方法,并没有写的很详细,以至于让我绕了很大的圈子,今天把它记录下来方便以后查看,下面是代码

package main

import "C"

import (
	"fmt"

	"github.com/fapian/geojson2svg/pkg/geojson2svg"
)

//export CreateSvg
func CreateSvg(str_json string, height, width float64) (svgstr string) {
	svg := geojson2svg.New()
	err := svg.AddFeatureCollection(str_json)
	if err != nil {
		fmt.Printf("svg add fearurcolltion err json is :%s\n", str_json)
		return svgstr
	}
	svgstr = svg.Draw(width, height)
	return
}


func main() {

	
}

  

其中需要注意的是  


import "C"  一定要写
//export CreateSvg  需要导出来的函数上面一定要写
//export [函数名] 这样的注释否则编译成的dll中没有到处的函数


最后编译的命令为:go build -buildmode=c-shared -o convertsvg.dll main.go

然后会生成.h的头文件 和dll文件

我们可以用depends来看一下编译好的dll文件如图:



posted @ 2018-12-04 09:26  我是刹那、  阅读(1296)  评论(0编辑  收藏  举报