go語言讓windows發出聲音,或者播放音樂的例子:會發出alert警告的聲音golang
( 這是我應羣員的求助寫的, 若是你須要瞭解其中的調用原理或過程 或更多go語言調用win32api的資料,加羣: 218160862 , 答案我告訴你)windows
package main函數
import "syscall"ui
func main(){ spa
winSound()blog
}get
// golang 讓windows發出警告的聲音 todo 須要完善播放mp3之類it
func winSound( ) {import
funInDllFile, err := syscall.LoadLibrary("Winmm.dll") // 調用的dll文件
if err != nil {
print("cant not call : syscall.LoadLibrary , errorInfo :" + err.Error())
}
defer syscall.FreeLibrary(funInDllFile)
// 調用的dll裏面的函數是:
funName := "PlaySound"
// 註冊一長串調用代碼,簡化爲 _win32Fun 變量.
win32Fun, err := syscall.GetProcAddress(syscall.Handle(funInDllFile), funName)
// 經過syscall.Syscall6()去調用win32的xxx函數,由於xxx函數有3個參數,故需取Syscall6才能放得下. 最後的3個參數,設置爲0便可
_, _, err = syscall.Syscall6(
uintptr(win32Fun), // 調用的函數名
3, // 指明該函數的參數數量
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("alert") ) ), // 該函數的參數1. 可經過msdn查找函數名 查參數含義
// SystemStart
uintptr( 0 ), // 該函數的參數2.
uintptr( 0 ), // 該函數的參數3.
0,
0,
0 )
}