我们这样设计 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调用这两个函数时:
hd:=syscall.NewLazyDLL(dll_path)
proc:=hd.NewProc(dll_func_name)
ret:=proc.Call()
我们找到:
FnRetInt
工作正常,但FnRetString
没有。proc.Call
返回类型是uintptr
,我们如何将其更改为我们想要的类型(例如:char* 或字符串)?