C/C++ DLL は次のように設計されています。
WIN32_DLL_EXPORT int FnRetInt(int i)
{
....
return 32 ;
}
WIN32_DLL_EXPORT char* FnRetString()
{
return "THIS IS A TEST STRING" ;
}
Go
syscall を使用してこれら 2 つの関数を呼び出すと、次のようになります。
hd:=syscall.NewLazyDLL(dll_path)
proc:=hd.NewProc(dll_func_name)
ret:=proc.Call()
私たちは見つけました:
FnRetInt
うまくいきましたが、FnRetString
しませんでした。proc.Call
戻り値の型は ですuintptr
。それを希望の型 (例: char* または string) に変更するにはどうすればよいですか?