Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将argv和argc作为数组传递给main_C++_Opencv_Command Line - Fatal编程技术网

C++ 将argv和argc作为数组传递给main

C++ 将argv和argc作为数组传递给main,c++,opencv,command-line,C++,Opencv,Command Line,我使用的是opencv,有一个函数可以接受命令行变量: int start(int argc, char** argv) { cv::CommandLineParser parser(argc, argv, keys); if(parser.has("help")) { parser.printMessage(); return 0; } .... } 我想做的是,让另一个函数将变量传递给这个函数,而不是像现在这样使用命令行。 我传递给

我使用的是opencv,有一个函数可以接受命令行变量:

int start(int argc, char** argv)
{
    cv::CommandLineParser parser(argc, argv, keys);
    if(parser.has("help")) {
        parser.printMessage();
        return 0;
    }
....

}
我想做的是,让另一个函数将变量传递给这个函数,而不是像现在这样使用命令行。 我传递给它以使其完美运行的命令行是:

-h=6-w=8-pf=defaultConfig.xml-t=charuco-v=bmCalib2.mov-sz=0.045-d=1

所以我有这个函数:

void main()
{
char* passArg[7] = { "-h=6", "-w=8","-pf=defaultConfig.xml", "-t=charuco","-v=bmCalib2.mov", "-sz=0.045", " -d=1" };
        start(7,passArg);
}
它编译并运行,但结果不同(它是一个校准应用程序,命令行进行校准,而函数版本不进行校准)

这是发送
intargc,char**argv
而不是使用命令行的正确方法吗?
谢谢。

啊,已经解决了。我需要将我的字符数组调整为:

char*passArg[8]={NULL,“-h=6”、“-w=8”、“-pf=defaultConfig.xml”、“-t=charuco”、“-v=bmCalib2.mov”、“-sz=0.045”、“-d=3”}


显然,
.exe
通常是命令行启动中给出的第一个变量

void main
有误吗“-d=1”中的空格需要吗?应该是
const char*
我很惊讶这竟然是基于OpenCV文档编译的