Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import dynlib
- type
- setupProc = proc (toCall: proc(): string) {.nimcall.}
- callProc = proc () {.nimcall.}
- var
- dll: LibHandle
- setup: setupProc
- call: callProc
- theValue = 2
- proc myProc(): string =
- theValue += 1
- return "Something cool"
- dll = loadLib("./liblib.so")
- if dll != nil:
- let setupAddr = dll.symAddr("setup")
- if setupAddr != nil:
- setup = cast[setupProc](setupAddr)
- let callAddr = dll.symAddr("call")
- if callAddr != nil:
- call = cast[callProc](callAddr)
- if setup != nil:
- setup(myProc)
- call()
- call()
- call()
- echo theValue
- else:
- echo "Wasn't able to load setup() from DLL."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement