title: How to call a function in a custom dll file
body: <p>now i got this function describe like this</p>
  
  <pre><code>int ReadCard(char *room,char *gate,char *stime, char *guestname, char *guestid, char *lift, char *track1, char *track2, long *cardno, int *st, int *Breakfast);`
  </code></pre>
  
  <p>and this is what i do</p>
  
  <pre><code>room := ""
  gate := ""
  stime := ""
  guestname := ""
  guestid := ""
  lift := ""
  track1 := ""
  track2 := ""
  cardno := int64(0)
  st := int64(0)
  Breakfast := int64(0)
  
  MAINDLL, _ := syscall.LoadLibrary("xxxxx.dll")
  defer syscall.FreeLibrary(MAINDLL)
  readCard, _ := syscall.GetProcAddress(MAINDLL, "ReadCard")
  
  r1, r2, errno := syscall.Syscall12(readCard,
      11,
      uintptr(unsafe.Pointer(&amp;room)),
      uintptr(unsafe.Pointer(&amp;gate)),
      uintptr(unsafe.Pointer(&amp;stime)),
      uintptr(unsafe.Pointer(&amp;guestname)),
      uintptr(unsafe.Pointer(&amp;guestid)),
      uintptr(unsafe.Pointer(&amp;lift)),
      uintptr(unsafe.Pointer(&amp;track1)),
      uintptr(unsafe.Pointer(&amp;track2)),
      uintptr(cardno),
      uintptr(st),
      uintptr(Breakfast),
      0)
  
  fmt.Println(r1, "\n", r2, "\n", errno)`
  </code></pre>
  
  <p>when i run this code , i got </p>
  
  <pre><code>r1:0    r2:917452    errno:&lt;nil&gt;
  </code></pre>
  
  <p>but when i print room or other param , it's value doesn't change,
  this function in dll file will change the param i send , how can i got those value?</p>