DllImportで返値にStringを使うと対象アドレスのメモリを解放しようとするからその辺のせいかな
ポインタが返される場合IntPtrで受け取るべき
文字列ならMarshal.PtrToStringAuto(/Ansi/Uni)で変換