最近看了下Go语言,利用Dynamsoft Barcode SDK做了一个简单的Golang条形码扫描。这里分享下如何使用SWIG来快速封装底层C/C++接口。
翻译:yushulx
下载安装
如何使用SWIG实现Cgo封装
运行cmd.exe,设置GOPATH:
创建一个package:
mkdir %GOPATH%\src\github.com\dynamsoftsamples\go-barcode-reader\dbr
从SDK目录中把DynamsoftBarcodeReaderx64.dll拷贝到%GOPATH%\src\github.com\dynamsoftsamples\go-barcode-reader\dbr\bin。
接下来把头文件都拷贝到%GOPATH%\src\github.com\dynamsoftsamples\go-barcode-reader\dbr\include。
创建dbr.c:
创建对应的dbr.i:
生成dbr.go和dbr_wrapper.c:
swig -go -cgo -intgosize 32 dbr.i
这个时候看到的目录结构:
打开dbr.go,添加头文件和库文件路径:
切换路径到根目录%GOPATH%,编译安装:
go install github.com\dynamsoftsamples\go-barcode-reader\dbr
如果在package目录中,可以直接使用:
go install
这个时候会在%GOPATH%\pkg\windows_amd64\github.com\dynamsoftsamples\go-barcode-reader中生成一个包dbr.a。
Windows上实现Golang条码扫描应用
创建%GOPATH%\github.com\dynamsoftsamples\go-barcode-reader\BarcodeReader\BarcodeReader.go:
拷贝DynamsoftBarcodeReaderx64.dll到%GOPATH%\bin。
在根目录使用下面的命令行生成可执行文件:
go install github.com\dynamsoftsamples\go-barcode-reader\BarcodeReader
测试程序:
%GOPATH%bin\BarcodeReader.exe <barcode image>