我们像这样设计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,我们如何将其更改为所需的类型(例如exchar:char *或string)?
慕桂英4014372
相关分类