C# 调用C++ exe 传参问题?

fywindy 2015-11-30 02:56:11
小弟使用如下的代码调用C++ 可执行程序:


ProcessStartInfo paramInfo = new ProcessStartInfo() { Arguments = "192.168.5.21 192.168.5.23", FileName = path, CreateNoWindow = true };
Process process = new Process() { StartInfo = paramInfo };
process.Start();
process.WaitForExit();
if (process.HasExited)
{
MessageBoxEx.Show("成功读取配置文件!");
}


C++ 端代码:



int _tmain(int argc, char* argv[])
{
cout<<"参数个数是"<<argc<<endl;

for (int i = 1; i < argc; i++)
{
cout<<"参数是:"<<ip<<endl;
}
return 0;
}


调用C++ 可执行文件默认第一个参数是文件名称忽略,但是第二个参数和第三个参数应该IP地址:192.168.5.21 192.168.5.23,但是调用c++ 文件后 输出的却都是 1 ,也就是输出的事字符串的第一个字符,求帮助怎么全部输出?
...全文
156 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmy_03 2015-11-30
  • 打赏
  • 举报
回复
int _tmain(int argc, char* argv[]) { cout<<"参数个数是"<<argc<<endl; for (int i = 1; i < argc; i++) { cout<<"参数是:"<<argv[i]<<endl; } return 0; }
wmy_03 2015-11-30
  • 打赏
  • 举报
回复
int _tmain(int argc, char* argv[])
{
     cout<<"参数个数是"<<argc<<endl;
     
    for (int i = 1; i < argc; i++)
    {
        cout<<"参数是:"<<argv[i]<<endl;
    }
    return 0;
}
crystal_lz 2015-11-30
  • 打赏
  • 举报
回复
引用 3 楼 shingoscar 的回复:
ip这个变量又是从哪里来的?
同问
  • 打赏
  • 举报
回复
这个和C#调用应该没啥关系,应该看看你在C++里是如何输出string的,怀疑你C++的code的string没有写好。
Poopaye 2015-11-30
  • 打赏
  • 举报
回复
你是哪一行输出的1?
Poopaye 2015-11-30
  • 打赏
  • 举报
回复
ip这个变量又是从哪里来的?
Saleayas 2015-11-30
  • 打赏
  • 举报
回复
尝试使用 宽字符版的程序。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧