visual-studio-2010 - Visual Studio C++ 2010 __argv如何成为空指针?

标签 visual-studio-2010 visual-c++ argv

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 ...
}


如果__argc == 3__argv如何成为空指针?

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

最佳答案

如果将其编译为unicode,则__argv将为null,而__wargv将包含所需内容。我相信有一个__targv应该包含命令行参数,而不管unicode还是ascii。

但是,如果只使用传递给_tmain的argv作为参数,为什么还要使用其中的任何一个?

关于visual-studio-2010 - Visual Studio C++ 2010 __argv如何成为空指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9745704/

相关文章:

c - argv[argc] ==?

c++ - 是否可以在非托管代码中使用属性?

c++ - C++中的邻接表实现

c++ - 生成 View .obj文件的头

C++ 字符串拆分错误(复杂方式)

c(以及 objc、c++ 和 objc++)- char* argv[]

int 和 argv 的比较

c# - WCF - Visual Studio 不会生成 SVC 文件

visual-studio-2010 - 如何在内置的 Visual Studio 调试器服务器中使用 Web.debug.config?

c++ - 在继承自抽象类的模板类中正确使用未定义类型