簡體   English   中英

引發Visual Studio C ++異常:讀取訪問沖突。 使用命令行參數進行調試時

[英]Visual Studio C++ Exception thrown: read access violation. When debugging using Command Line Argument

在Windows 10上的Visual Studio 2015社區中使用c ++執行以下代碼時,我收到拋出錯誤異常的消息,即使對同一個問題的人進行大量搜索之后,我也不知道如何解決。 Visual Studio 2015社區在這台運行Windows 10的計算機上正常運行了很長時間,但就在過去一周,調試任何c ++程序時一直給我帶來問題; 特別是需要使用命令行參數的程序。 此代碼演示了問題,如果有人可以向我指出正確的解決方法,請告訴我。

#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
    cout << "program name : " << argv[0] << endl;
    cout << "first command argument : " << argv[1] << endl;

    cin.get();
    return 0;
}

我通過在調試屬性窗口中輸入命令行參數來添加命令行參數。 如果我使用ctrl + F5運行該程序,則它會掛起並提示屏幕該程序已停止工作。 然后在使用F5運行程序時,我收到以下錯誤消息

“引發了異常:讀取訪問沖突。

_First是nullptr。

如果存在用於此異常的處理程序,則可以安全地繼續執行該程序。”

Visual Studio指向引發異常的位置,該異常是位於c:\\ Program Files(x86)\\ Visual Studio 14 \\ VC \\ include \\文件夾中的文件iosfwd。 它專門指向的塊位於struct char_traits和函數內,拋出異常的情況指向返回行:

static size_t __CLRCALL_OR_CDECL length(const _Elem *_First)
    {   // find length of null-terminated string
    return (*_First == 0 ? 0
        : _CSTD strlen(_First));
    }

在引發錯誤時,控制台輸出窗口掛在“第一個命令參數:”上,並且不顯示“ hi”。 但是,它確實正確輸出了argv [0]中指定的程序名稱的文件位置。

如果我從命令提示符處運行Project1.exe,它將按預期運行,並輸出在行中輸入時添加的命令行參數。 這告訴我Visual Studio而不是我的代碼有問題。 我希望通過使用Visual Studio編寫c ++來解決此問題,因此將不勝感激。 謝謝。

我認為問題在於您是在為“發布”配置而不是“調試”配置設置命令行參數(請查看項目屬性窗體左上方的“配置”下拉列表)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM