在c#应用程序和c+之间传递参数和返回值+;执行档

在c#应用程序和c+之间传递参数和返回值+;执行档,c#,c++,C#,C++,我想调用C++ exe文件到我的C应用程序中,该应用程序使用命令行参数并返回结果,以便我可以在C语言应用程序中使用它,但我不知道如何使用它。p> 以下是我尝试过但失败的简单示例: C++代码:ReTurner-exe < /P> #include<iostream> #include<cstdlib> using namespace std; int main(string argc , string argv) { int b= atoi(argv.c_str(

我想调用C++ exe文件到我的C应用程序中,该应用程序使用命令行参数并返回结果,以便我可以在C语言应用程序中使用它,但我不知道如何使用它。p> 以下是我尝试过但失败的简单示例: C++代码:ReTurner-exe < /P>
#include<iostream>
#include<cstdlib>
using namespace std;
int main(string argc , string argv)
{
    int b= atoi(argv.c_str());
    return b;
}

我希望在标签上看到3个。但它总是0。我该怎么办?

您的
main
签名不正确,应该是:

int main(int argc, char *argv[])
{
    // you are better to verify that argc == 2, otherwise it's UB.
    int b= atoi(argv[1]);
    return b;
}

也许C++的DLL会更好地适合你的目的。你的C++代码是否有效?那个
main
签名不是标准的。你有没有考虑过调试?如果C++主显式返回“3”,则忽略了“主”参数,(我不太满意,见Mat注释),我不是C++专家,所以如果你知道如何编写C++代码告诉我。是的,如果我的C++代码显式返回3,我会看到3的标签。<代码> int main(int ARC,const char **ARGV)< /代码> ->这是一个正确的原型的主要功能。从那以后,你也许可以做点什么
int main(int argc, char *argv[])
{
    // you are better to verify that argc == 2, otherwise it's UB.
    int b= atoi(argv[1]);
    return b;
}