Go를 사용하여 DLL 함수에 액세스: DllImport의 대안
C#에서 DllImport를 사용하는 데 익숙하다면 다음 사항이 궁금할 수 있습니다. Go에는 DLL에서 함수를 가져오는 것과 동일한 기술이 있습니다. Go에는 직접적인 DllImport 기능이 없지만 사용할 수 있는 접근 방식은 여러 가지가 있습니다.
cgo 메서드
이 접근 방식을 사용하면 Go에서 직접 DLL 함수를 호출할 수 있습니다. 암호. 다음은 간단한 예입니다.
import ("C") func main() { C.SomeDllFunc(...) // Call the DLL function }
syscall 방법
syscall 패키지는 DLL 기능에 액세스할 수 있는 수단도 제공합니다. 다음은 kernel32.dll 라이브러리의 GetModuleHandle 함수를 사용하는 예입니다.
import ( "syscall" "unsafe" ) // ... kernel32, _ := syscall.LoadLibrary("kernel32.dll") getModuleHandle, _ := syscall.GetProcAddress(kernel32, "GetModuleHandleW") func GetModuleHandle() (handle uintptr) { // ... return }
타사 패키지
또한 github와 같은 타사 패키지도 있습니다. com/golang/go/wiki/WindowsDLL은 DLL 작업에 대한 지원을 제공합니다. Go.
결론
Go에는 직접 DllImport에 해당하는 것이 없지만 cgo, syscall 및 타사 패키지 접근 방식은 내에서 DLL 기능에 액세스하는 유연한 방법을 제공합니다. Go 애플리케이션을 선택하세요.
위 내용은 DllImport 없이 Go에서 DLL 함수에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!