title: unexpected fault address 0x0 while using dll api
body: <p>I am trying to use some third party dll in go language. But facing enormous difficulties. I would prefer pure go implementation but that is not a choice.</p>
  
  <p>This my sample program</p>
  
  <pre><code>import (
  "fmt"
  "github.com/andlabs/dl"
  )
  
  type GetObject func(string, string) int
  
  func main() {
      gro := new(GetObject)
      d, err := dl.Open("/home/vaishnavi/lib/libVsphere.so", dl.Lazy)
      if err!=nil{
          panic(err)
      }
      fmt.Println("DLL Loaded::", d)
  
      s, err := d.Symbol("GetSum")
      if err != nil {
          panic(err)
      }
  
      gro = (*GetObject)(s)
  
      p := (*gro)("1","2")
      fmt.Println("Got returned result::", p)
      fmt.Println("Converted::", gro)
      fmt.Println("Loaded at::", s)
      if s == nil {
          fmt.Println("Error loading from the dll")
      }
  
  }
  </code></pre>
  
  <p>While running this program i am getting following error</p>
  
  <pre><code>DLL Loaded:: 15028848
  unexpected fault address 0x0
  fatal error: fault
  [signal 0xb code=0x80 addr=0x0 pc=0x401923]
  
  goroutine 1 [running]:
  runtime.gothrow(0x4dcef0, 0x5)
      /usr/local/go/src/runtime/panic.go:503 +0x8e fp=0xc20805fda0   sp=0xc20805fd88
  runtime.sigpanic()
  /usr/local/go/src/runtime/sigpanic_unix.go:29 +0x265 fp=0xc20805fdf0 sp=0xc20805fda0
  main.main()
          /home/vaishnavi/ESXI_VHBS/src/main/main.go:25 +0x343     fp=0xc20805ff98 sp=0xc20805fdf0
  runtime.main()
          /usr/local/go/src/runtime/proc.go:63 +0xf3 fp=0xc20805ffe0     sp=0xc20805ff98
  runtime.goexit()
      /usr/local/go/src/runtime/asm_amd64.s:2232 +0x1 fp=0xc20805ffe8 sp=0xc20805ffe0
  
  goroutine 17 [syscall, locked to thread]:
  runtime.goexit()
      /usr/local/go/src/runtime/asm_amd64.s:2232 +0x1
  Error: process exited with code 2.
  </code></pre>
  
  <p>Any help will be appreciated.</p>