Mercurial > pub > dyncall > bindings
comparison go/godc/README.txt @ 9:8a45a05ff64e
- go binding cleanup, not enforcing relative paths anymore, readme update
author | cslag |
---|---|
date | Sat, 26 Mar 2016 01:09:51 +0100 |
parents | 0cfcc391201f |
children | 739c40f35a6a |
comparison
equal
deleted
inserted
replaced
8:c7830d9614f5 | 9:8a45a05ff64e |
---|---|
1 dyncall go bindings | 1 dyncall go bindings |
2 Copyright 2014 Tassilo Philipp | 2 Copyright 2014-2016 Tassilo Philipp |
3 February 23, 2014 | 3 February 23, 2014 |
4 | 4 |
5 | |
6 BUILD/INSTALLATION | |
7 ------------------ | |
8 | |
9 1) make sure dyncall is built and libraries/headers are in include paths or | |
10 CGO_CFLAGS points to them, etc. | |
11 | |
12 2) Build this nut with: | |
13 go build | |
14 | |
15 | |
16 API | |
17 --- | |
18 | |
19 Since go is low level, dyncall's public functions are pretty much exposed | |
20 function by function. Referg to dyncall(3) and godc.go. | |
21 | |
22 l := new(ExtLib) | |
23 err := l.Load(libpath) | |
24 defer l.Free() | |
25 err := l.SymsInit(libpath) | |
26 defer l.SymsCleanup() | |
27 | |
28 l.lib // Address lib is loaded at | |
29 l.FindSymbol(symbolname) | |
30 l.SymsCount() | |
31 l.SymsNameFromValue(l.FindSymbol(synbolname)) | |
32 l.SymsName(index) | |
33 | |
34 vm := new(CallVM) | |
35 err := vm.InitCallVM() | |
36 defer vm.Free() | |
37 vm.Mode(DC_CALL_C_DEFAULT) | |
38 vm.Reset() | |
39 vm.ArgFloat(36) | |
40 rf := vm.CallFloat(l.FindSymbol("sqrtf")) | |
41 | |
42 vm.Arg.... | |
43 | |
44 | |
45 SIGNATURE FORMAT | |
46 ---------------- | |
47 | |
48 Signature string is only used by ArgF function, rest uses type info from Go. | |
5 | 49 |
6 TYPE CONVERSIONS (and reserved signature char) | 50 TYPE CONVERSIONS (and reserved signature char) |
7 | 51 |
8 SIG | FROM GO | C/C++ | TO GO | 52 SIG | FROM GO | C/C++ | TO GO |
9 ----+---------------------+--------------------+---------------- | 53 ----+---------------------+--------------------+---------------- |
25 'Z' | string | void* | string | 69 'Z' | string | void* | string |
26 | 70 |
27 | 71 |
28 ToDo: | 72 ToDo: |
29 - structs | 73 - structs |
30 - callf wrap | 74 - callbacks |
75 - callf wrap (argf already there) | |
76 |