Tôi đang cố gắng kết nối với một dll Windows bằng Go. Hàm dll mà tôi muốn sử dụng chấp nhận một con trỏ tới một mảng byte. Vì vậy, tôi cần phải cung cấp cho nó mảng byte đó.Golang: mảng byte động không an toàn
Tôi đang sử dụng thư viện syscall để gọi dll, như được minh họa here. yêu cầu cơ bản của tôi là:
- tôi đưa ra kích thước cần thiết cho các mảng byte
- tôi tạo ra các mảng byte
- tôi phải có được một con trỏ đến mảng byte
- tôi sau đó vượt qua con trỏ đến Windows dll
Tôi không thể hình dung cách tạo mảng byte khi di chuyển và nhận con trỏ đến đó. Điều này rõ ràng là một hoạt động không an toàn, và thư viện unsafe sẽ giúp tôi, nhưng tôi cần để có thể tạo ra một mảng byte chiều dài động ở nơi đầu tiên. Tạo một slice với "make" không giúp tôi, trừ khi tôi có thể lấy một con trỏ tới mảng sao lưu của slice.
Có ai khác đã gặp phải điều này hoặc có bất kỳ ý tưởng nào không?
Rực rỡ, nó hoạt động như một sự quyến rũ. 'ptr: = & myslice [0]' – chowey