我正在尝试使用c共享(.so)文件从Python调用Go函数。在我的python代码中,我调用的函数如下所示:
website = "https://draftss.com"
domain = "draftss.com"
website_ip = "23.xxx.xxx.xxx"
website_tech_finder_lib = cdll.LoadLibrary("website_tech_finder/builds/websiteTechFinder.so")
result_json_string: str = website_tech_finder_lib.FetchAllData(website, domain, website_ip)
在Go端,我正在根据这篇SO帖子将字符串转换为Go字符串(从共享库访问函数时内存不足):
func FetchAllData(w *C.char, d *C.char, dIP *C.char) *C.char {
var website string = C.GoString(w)
var domain string = C.GoString(d)
var domainIP string = C.GoString(dIP)
fmt.Println(website)
fmt.Println(domain)
fmt.Println(domainIP)
.... // Rest of the code
}
网站域和 domainIP 只有我传递的字符串的第一个字符:
fmt.Println(website) // -> h
fmt.Println(domain) // -> d
fmt.Println(domainIP) // -> 2
我对Go有点陌生,所以我不确定我是否在这里做了一些愚蠢的事情。如何获取我传递的完整字符串?
元芳怎么了
相关分类