利用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 |