微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Metrics_Alpha.exe 中 0x78F90870 (ucrtbased.dll) 处未处理的异常:0xC0000005:访问冲突读取位置 0x00000000

如何解决Metrics_Alpha.exe 中 0x78F90870 (ucrtbased.dll) 处未处理的异常:0xC0000005:访问冲突读取位置 0x00000000

尝试使用 C++ 处理 Excel 文件(作为一个相当“不专业”的程序员)。看来我正确地引入了所有库,等等;如果我需要发布那些和包含的 SDK,我可以。但是,我遇到了上述错误

这里是我直接处理 Excel 文件的地方:

void themSheets() {
    cout << endl << endl;
    try {
        Excel::_ApplicationPtr pXL;
        pXL->Workbooks->Open(L"C:/Users/Person/source/repos/Metrics_Alpha/Metrics_Alpha/poooopy.xlsx");
        pXL->PutVisible(0,FALSE);

        Excel::_WorksheetPtr pSheet = pXL->ActiveSheet;
        pSheet->Name = L"Sheet1";
        Excel::RangePtr pRange = pSheet->Cells;

        pRange->Item[1][1] = 5.21;
        double apples = pRange->Item[1][1];
        cout << endl << apples;
        pXL->Workbooks->Close();
    }
    catch (_com_error & error) {
        cout << error.Description() << endl;
    }
}

这里是异常发生的地方:

    _NOdisCARD static _CONSTEXPR17 size_t length(_In_z_ const _Elem* const _First) noexcept /* strengthened */ {
    // find length of null-terminated string
#if _HAS_CXX17
#ifdef __cpp_char8_t
        if constexpr (is_same_v<_Elem,char8_t>) {
#if _HAS_U8_INTRINSICS
            return __builtin_u8strlen(_First);
#else // ^^^ use u8 intrinsics / no u8 intrinsics vvv
            return _Primary_char_traits::length(_First);
#endif // _HAS_U8_INTRINSICS
        } else
#endif // __cpp_char8_t
        {
            return __builtin_strlen(_First);
        }
#else // _HAS_CXX17
        return _CSTD strlen(reinterpret_cast<const char*>(_First)); **<--Happens right here**
#endif // _HAS_CXX17
    }

解决方法

主要问题是我的主文件中缺少此代码块:

HRESULT hr = CoInitializeEx(0,COINIT_MULTITHREADED);
    if (FAILED(hr))
    {
        cout << "Failed to initialize COM library. Error code = 0x"
            << hex << hr << endl;
        return hr;
    }

    Excel::_ApplicationPtr pXL;

    if (FAILED(pXL.CreateInstance("Excel.Application")))
    {
        cout << "Failed to initialize Excel::_Application!" << endl;
        return 0;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。