C#调用C++的.exe文件Process.Start。以及接收参数问题

在使用C#进行窗体绘制的时候,经常需要调用别处的程序,显示到窗体中。

因此本节写一下关于调用.exe文件,以及传递参数在C++ 端接收的问题

1、System.Diagnostics.Process.Start()函数能够调用C++的文件,此方法比较丰富,可以传递不同的参数,同时也可以实现不同的目的,网上对其描写也比较丰富。我就不讲其余的了,就写一下我用的方法。

我使用次函数调用C++的.exe文件。并且传递参数。以下是我的代码

其中statue是获取的路径,传递到C++的int main()中 有兴趣的可以看一下我之前的文档,
 System.Diagnostics.Process.Start(@"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\motion\Debug\motion.exe", status); 

2、int main()接收C#传的参数

在以往中并没有使用过这种方式,因此在这里写一下。普通写C++程序的时候都是int main(),括号中并没有参数。

但是使用传参的话,需要对其进行改造一下,变成下面这种形式

int main(int argc,char *argv[])
{    //其中argc参数表示的存在几个参数,argv表示的是数组
} 

能够有接收参数的前提条件后,就要对参数进行获取了

参数的位置第一个下表是文件的地址默认值是0;第二个才是你传递的值,下表值可以使用123等接收,下面是具体的代码

int main(int argc,char *argv[])
{
	
	//fBackYardFire
	if (argc == 0)
	{        //0表示为此程序的地址
		cout << argv[0];
	}
	else
	{        //获取传递的路径,下标值为1
		string path = argv[1];
		

//路径处理
		string_replase(path, "\\", "\\\\");
        }
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值