"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C DLL 기능을 이동하기위한 팁

C DLL 기능을 이동하기위한 팁

2025-04-15에 게시되었습니다
검색:238

How Can I Import C DLL Functions into Go?

Importing a DLL Function into Go using DllImport Equivalent

Problem Statement

In C#, DllImport is used to import functions from a DLL written in C. Is there a similar mechanism available in Go that allows for importing DLL cgo 및 syscall

솔루션에서 생성 된 함수는 DLL 기능을 이동하는 여러 가지 방법이 있습니다. 한 가지 방법은 CGO 패키지 사용과 관련하여 C 코드에 대한 GO 바인딩 생성을 용이하게합니다. CGO를 사용하면 GO Functions 인 것처럼 DLL 기능을 직접 호출 할 수 있습니다. 이를 통해 DLL 로딩 및 기능 호출을 포함하여 시스템의 저수준 API와 상호 작용할 수 있습니다. 메모리를 명시 적으로 관리하고 필요한 시스템 기능을 호출함으로써 SyScall을 사용하여 DLL 기능을 가져올 수 있습니다.

CGO

import "C"

func main() {
    C.SomeDllFunc(...)
}

import "C"에 대한 예제 코드. func main () { c.somedllfunc (...) }

syscall
import "C"

func main() {
    C.SomeDllFunc(...)
}

import에 대한 예제 코드 예제. "FMT" "Syscall" "위험한" )) func main () { kernel32, _ : = syscall.loadlibrary ( "kernel32.dll") getModuleHandle, _ : = syscall.getProcadDress (kernel32, "getModuleAndlew") 핸들 : = getModuleHandle () fmt.println (핸들) } funcc getModuleHandle () uintptr { var nargs uintptr = 0 ret, _, _ : = syscall.syscall (uintptr (getmodule handle), nargs, 0, 0, 0) Ret }

추가 리소스

    자세한 내용은 다음 리소스를 참조하십시오.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3