2012-07-22 6 views
2

나는 COM 인터페이스에 대한 포인터를 가지고 있으며 가상 테이블에서 함수 포인터를 가져 와서 메서드 호출을하고 싶습니다. 이렇게하려면 stdcall 메서드 호출을해야합니다. Go에서 컨벤션 stdcall을 사용하여 전화를 걸거나 cgo에서 컨벤션 stdcall을 사용하여 전화를 거는 방법은 무엇입니까?go에서 stdcall을 만드는 방법

답변

0

Windows에서 stdcall 기능을 호출하는 방법은 "godoc syscall Proc"를 참조하십시오. * Proc.Call이 메모리를 할당/할당 해제한다는 것을주의하십시오. 효율성을 염려한다면 syscall.Syscall/syscall.Syscall6/syscall.Syscall9/... 함수를 사용해야합니다.

알렉스

+0

내가하고 stdcall이) 어떻게 (콜을 사용하는 의미가 않습니다, 시스템 호출되지 호출 규칙을 사용하여 일반 함수 호출을 만들고 있어요 경우? – user782220

+0

syscall.Syscall은 플랫폼에 따라 다릅니다. 윈도우에서는 dll의 내부에서 함수를 호출하기 위해 stdcall 규칙을 사용합니다. 자세한 방법은 http://code.google.com/p/go/source/browse/src/pkg/syscall/zsyscall_windows_386.go를 참조하십시오. – alex