main()
main(int argc)      
main(int argc, char *argv[])      
main(int argc, char *argv[], char *env[])     我在网上看到只有这四种方式合法
问:
我在main里面main()//不含参数
而char* argv[]为我在a函数前定义的的char *
然后调用 a(int argc, char* argv[])
这种方法不知道是否可行
还是请问如何获取argc

解决方案 »

  1.   

    废话,肯定不行啦
    跟参数的名字是没有关系的,跟位置有关,只能放在main那里
    至于叫什么名字倒无所谓比如main(int num, char *s[])一样可以把参数取回来,因为编译后,系统才不管你的变量叫什么名字不过说回来,要是程序写成这样,别人看着会晕倒的
      

  2.   

    上面两个人没有理解我的意思
    这样说吧~~~
    void a()
    {   a(int argc, char* argv[])}
    这里的a是我把一个控制台程序做成了dll(动态链接库)导出的函数
    在a()函数中我要调用这个函数,同时需要往里面传参
    有什么办法???
      

  3.   

    3楼写错了
    void a()
    {
       ..................
       main(int argc, char* argv[]);
       ..................
    }
    这里的main是我把一个控制台程序做成了dll(动态链接库)导出的函数
    在a()函数中我要调用这个函数,同时需要往里面传参
    有什么办法吗???
      

  4.   

    你就象main那样构造一个参数就好了啊.
    假设想要等效
    c:\mydemo.exe /all /pvoid a()
    {
      // 构造参数
      int argc = 3;
      char* argv[] = {"c:\\mydemo.exe", "/all", "/p"};
      // 调用函数
      main(argc,argv);
    }