Visual Studio C++ 2010 __argv 怎么可能是空指针?

pet*_*ete 4 visual-studio-2010 argv visual-c++

int _tmain(int argc, _TCHAR* argv[])
{

    if (argc != 3) {
        printf("Format is straightline.exe <EO records file> <output file>");
        return 1;
    }
    string eoPath = string(__argv[1]);
    //...other stuff ...
}
Run Code Online (Sandbox Code Playgroud)

如果__argc == 3,怎么可能__argv是空指针呢?

当我试图引用时,我的调试器告诉我,它__argv指向0x00000000程序崩溃后__argv[1](并且我已经验证了这一点__argc == 3)。这是一个最小的程序,它发生在我进行任何处理之前的开始。

Fri*_*Guy 6

如果它被编译为 unicode,则将__argv为 null,而__wargv将包含您想要的内容。我相信有一个__targv应该包含命令行参数,无论 unicode 还是 ascii。

argv但是,如果您可以使用传入的参数作为 _tmain 的参数,为什么还要使用其中任何一个呢?