2012-07-22 74 views
2

我有一個指向COM接口的指針,並希望從其虛擬表中取出函數指針並進行方法調用。爲此,我需要進行stdcall方法調用。在Go中,如何使用convention stdcall撥打電話,或者使用cgo中的常規stdcall撥打電話?如何從開始stdcall

回答

0

有關如何在窗口上調用stdcall函數的說明,請參閱「godoc syscall Proc」。被警告說* Proc.Call確實分配/釋放內存,所以如果你關心效率,你應該使用通訊員syscall.Syscall/syscall.Syscall6/syscall.Syscall9/...函數。

亞歷

+0

如果我做一個正常的函數調用stdcall調用約定,是不是一個系統調用,它是如何有意義使用系統調用()? – user782220 2012-07-23 01:07:59

+0

syscall.Syscall是平臺特定的。在Windows上,它使用stdcall約定來調用dll中的函數。有關如何操作的許多示例,請參閱http://code.google.com/p/go/source/browse/src/pkg/syscall/zsyscall_windows_386.go。 – alex 2012-07-24 09:47:51