1
1
它可能是可能的,但在同一进程中运行go和qt代码可能不容易,而且非常脆弱,因为go和qt具有非常不同的线程(goroutine)和内存模型。 然而,Go(在其标准库中)有许多功能强大的包来简化服务器程序的开发,特别是HTTP或JSONRPC服务器。 也许您可以考虑使用 inter-process communication 设施。详细信息是操作系统特定的。我假设您运行Linux。然后,Qt应用程序可以使用 QProcess 然后与它进行通信(作为一个客户机到你的专用“服务器”类程序)。 然后你可以用 HTTP 或 JSONRPC 从Qt应用程序远程调用Go函数。在qt中需要一些HTTP客户端库(它已经在下面 Qt Network ,您也可以使用 libcurl )或者一些JSONRPC客户端库。你的围棋计划是 专业的 HTTP或JSONRPC服务器(以及一些Google语音到文本客户端)和您的Qt程序将是它唯一的客户端(并将启动它)。所以你的围棋计划是专门的 proxy . 你甚至可以用 pipe(7) -S, unix(7) 插座,或 fifo(7) -增加通信通道的“隐私”。 如果谷歌语音到文本API是巨大的(但它可能不是),您可以使用GO反射或内省能力来生成QT+的一些C+胶代码: go/ast , go/build , go/parser , go/importer 等 顺便说一句,Google语音到文本协议似乎正在使用JSON和HTTP(似乎是一些 Web API )并有文件证明 REST API 因此,您可以直接在C++中对相关代码进行编码(当然,您需要了解协议的所有细节:相关的HTTP请求和JSON格式),而不需要任何GO代码(或进程)。如果你走这条路,我建议你把你的qt(或C++)谷歌语音代码分成一些单独的文本。 free software 图书馆(能够从外部获得反馈和帮助)。 |
grandmasternik · 缺少文件或方法 2 年前 |
nvh · 无限期运行Go例程(完成后重新启动) 2 年前 |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |
kepemo2494 · 如何使用docker运行golang? 2 年前 |
muthermutton · 为什么我的切片在追加时没有更新?[重复] 2 年前 |
nos · 将Golang二进制文件读入切片数据,结果为零 2 年前 |
Tono Nam · 指向同一内存位置的两个不同类型的对象 2 年前 |