利用golang编译dll
《go语言高级编程里》有cgo的教程,没有读过的建议先去读一下。
1.go与c的数据类型转换,因为编译成动态库或者生成静态库是c在运行了,所以数据类型不一样这个必需转换。
| C语言类型 | CGO类型 | Go语言类型 |
|---|---|---|
| char | C.char | byte |
| singed char | C.schar | int8 |
| unsigned char | C.uchar | uint8 |
| short | C.short | int |
| unsigned short | C.ushort | uint |
| int | C.int | int |
| unsigned int | C.uint | uint |
| long | C.long | int |
| unsigned long | C.ulong | uint |
| long long int | C.longlong | int |
| unsigned long long int | C.ulonglong | uint |
| float | C.float | float |
| double | C.double | float |
| size_t | C.size_t | uint |