这个问题很低级,我主要是为了弄清楚有关于argv和argc的用法,我以前在程序中都没用它们,直接以真名代替了。
程序如下:#include"stdafx.h"
#include"cv.h"
#include"highgui.h"
#inclulde"iostream"
using namespace std;int main(int argc,char **argv)
{
   IplImage *img=cvLoadImage(argv[1]);
   cvNamedWindow("argv_test",0);
   cvShowImage("argv_test",img);
   cvWaitKey(0);
   cvReleaseImage(&img);
   cvDestroyAllWindows();
   return 0;
}
为什么这个程序不能正确运行呢?就是在用argv[1]的那里,说是空指针。如果我直接把argv[1]改成“D:\\image\\test.jpg”程序是可以运行的。

解决方案 »

  1.   

    你用到了参数就需要给它赋值啊,如果没用到写成argv就行了
      

  2.   

    我从来都是void main()
    参数什么的不知道0_0
    不过名字很有意思
    cv.h
    highgui.h    //这个是E文还是前面是E文后面是中文或者前面中文读音0_0
      

  3.   

    argv是你传进来的参数,如果你直接运行,没有加参数运行,当然就为空了。argv[0]对应你的程序名参数,所以你传的实际参数是从argv[1]开始的,中间用空格隔开。比如CMD命令,转到你的EXE目录下面, 然后输入yourapp.exe “D:\\image\\test.jpg” 其它参数
      

  4.   

    要输入...从conscel里传入命令就不为空了....手动输入也行...
      

  5.   

    向int main(int argc,char **argv)这样的,需要从命令提示符中运行,第一个为*.exe,其他的依次根据需要输入即可
      

  6.   

    明白了,这个是要到DOS下面去运行才可以的!
      

  7.   

    好像没这么复杂吧,不用DOS下输入,在工程—>设置—>调试—>程序变量输入变量就好了
      

  8.   

    如何用VC将一幅GIF图像背景去除并显示?请各位大侠给与帮助
      

  9.   

    如何用VC将一幅GIF图像背景去除并显示?请各位大侠给与帮助
      

  10.   

     在工程—>设置—>调试—>程序变量输入变量就好了,vs2008工程里就没有设置选项啊