[英]Exception thrown at 0x50E6F1C0 (ucrtbased.dll) in CandidateVotes.exe: 0xC0000005: Access violation reading location 0x00000000
[英]Unhandled exception at 0x78F90870 (ucrtbased.dll) in Metrics_Alpha.exe: 0xC0000005: Access violation reading location 0x00000000
嘗試使用 Excel 文件使用 C++ (作為一個相當“不專業”的程序員)。 看來我把所有的圖書館都正確地帶了進去,等等; 如果我需要發布這些和包含的 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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.