go调用exe

//调用exe

func callEXE1() {
	arg := []string{}
	cmd := exec.Command("test", arg...)
	//会向 cmd.Stdout和cmd.Stderr写入信息,其实cmd.Stdout==cmd.Stderr,具体可见源码
	output, err := cmd.CombinedOutput()
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Printf("callEXE2结果:\n%v\n\n%v\n\n%v", string(output), cmd.Stdout, cmd.Stderr)
}

func callEXE2() {
	arg := []string{}
	cmd := exec.Command("test", arg...)
	//会向 cmd.Stdout写入信息
	output, err := cmd.Output()
	if err != nil {
		fmt.Printf("Error: %s\n", err)
		return
	}
	fmt.Printf("callEXE2结果:\n%v\n%v\n%v", string(output), cmd.Stdout, cmd.Stderr)
}

test.exe源码:

//vs 2010 c++
#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	std::cout<<"中国,zhongguo2014"<<endl;
	//std::cerr<<"中国,zhongguo2014"<<endl;
	//std::clog<<"中国,zhongguo2014"<<endl;

	fprintf(stderr,"中国,zhongguo2013");
	//fprintf(stdout,"中国,zhongguo2013");
	return 0;
}



转载于:https://my.oschina.net/meilihao/blog/298531

### 回答1: GO语言(或Golang)是一种开源的、并发支持、编译型的编程语言,常用于构建高性能和可靠性的软件应用。OPCClient.exe是一个OPC客户端应用程序,用于与OPC服务器进行通信并获取数据。 要实现GO语言和OPCClient.exe的互通,可以采用以下步骤: 1. 首先,需要使用GO语言中的网络编程库创建一个TCP客户端,以便连接到OPCClient.exe运行的主机。可以使用标准库中的"net"包来实现。 2. 接下来,在GO语言的客户端代码中,使用TCP连接向OPCClient.exe运行的主机发送请求。可以使用Socket连接参数指定与OPCClient.exe的通信端口号和IP地址。 3. 在OPCClient.exe中,需要监听指定的端口号,接收来自GO语言客户端的请求。可以使用OPCClient.exe自带的Socket编程或者第三方库来实现。 4. 当OPCClient.exe接收到GO语言客户端的请求后,可以根据请求的内容执行相应的操作,如读取OPC服务器的数据,发送数据给GO语言客户端等。 5. 运行完成后,OPCClient.exe可以将结果发送回GO语言客户端。GO语言客户端可以解析接收到的数据,以便进一步处理。 总结起来,GO语言和OPCClient.exe的互通主要依赖于网络编程。通过GO语言的网络编程库和OPCClient.exe的Socket编程,可以建立一个双向的通信通道,实现数据的传输和交换。需要注意的是,在实际操作中,还需了解OPCClient.exe提供的接口和通信协议,并相应地处理异常和错误情况。 ### 回答2: 要使Go语言和opcclient.exe互通,可以使用以下方法: 1. 使用Go语言编写一个OPC客户端程序,通过OPC DA或OPC UA协议与opcclient.exe进行通信。Go语言提供了一些库和工具,如Go-OPC,opcua库等,可以用于与OPC服务器进行通信。通过编写Go代码,您可以连接到opcclient.exe并通过OPC协议进行数据交换。 2. 使用Go语言的os/exec包,您可以在Go代码中执行外部命令,例如opcclient.exe。使用该包,您可以编写代码来启动opcclient.exe进程,并通过标准输入和输出流与其进行通信。这样,您可以编写Go代码来发送指令、接收结果和处理数据。 3. 在Go语言中使用网络编程,使用socket或HTTP等协议与opcclient.exe进行通信。您可以编写Go代码来创建一个与opcclient.exe进行数据交换的网络连接。通过定义适当的协议和消息格式,您可以实现双向通信,并在Go代码中处理收发的数据。 需要注意的是,要实现Go语言和opcclient.exe互通,你需要确保opcclient.exe程序可以被Go代码访问到,并且两者之间使用的通信协议和数据格式是兼容的。 ### 回答3: GO语言和OPC客户端之间可以通过以下几种方法进行互通: 1. 使用第三方库:可以使用一些在GO语言中可用的第三方库来访问OPC服务器。这些库提供了用于连接到和与OPC服务器进行通信的API。通过使用这些库,GO程序可以访问和读取OPC服务器中的数据,并且还可以发送写入请求。 2. 使用C语言DLL:GO语言可以调用C语言的动态链接库(DLL)。可以创建一个C语言的DLL来实现与OPC服务器的通信,并将其与GO程序进行动态链接。GO程序可以通过调用DLL提供的函数来访问和操作OPC服务器数据。 3. 使用网络协议:GO语言具有强大的网络编程功能,可以通过TCP/IP或其他网络协议与OPC服务器进行通信。在GO程序中,可以使用网络套接字编程方法来建立与OPC服务器的连接,并发送/接收数据。 总之,GO语言和OPC客户端可以通过使用第三方库、与C语言DLL交互或通过网络协议相互通信。这些方法可以使GO程序能够与OPC服务器进行数据交换和通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值