c++ - C++ 搜索和拉取循环提前退出而没有错误代码
问题描述
我编写了一个程序来搜索某些 Excel 文件,提取一个数据单元格,然后填充到一个新的 Excel 工作表中。它可以在我的家用电脑和笔记本电脑上完美运行。但是,当我在工作计算机上运行它时,它只经过循环的第一次迭代,然后以代码 0 终止。
这是它在期间中断的循环(程序的其余部分完全运行):
void popNames() {
cout << endl;
int x = 0;
try {
Excel::_ApplicationPtr pXL; //Null Pointer
pXL.CreateInstance(L"Excel.Application"); //Initialize Excel
for (int h = 0; h < batches; h++) {
cout << folderName[h] << endl;
for (int i = 0; i < 4; i++) {
pXL->Workbooks->Open(homeDir + _bstr_t(sDay.c_str()) + "\\" + folderName[h] + "\\" + fileName[x]);
//Return pointer to worksheet and cells
Excel::_WorksheetPtr pSheet = pXL->ActiveSheet;
Excel::RangePtr pRange = pSheet->Cells;
names.push_back(_bstr_t(pRange->Item[5][2])); //Populate names to vector
pXL->PutDisplayAlerts(LOCALE_USER_DEFAULT, VARIANT_FALSE); //Turn off save alert
pXL->Workbooks->Close(); //close workbook
pXL->Quit();
x++;
}
}
}
catch (_com_error & error) {
cout << "Looks like there was an error: " << GetLastError() << endl;
}
}
我已经尝试消除 try/catch 部分,但是当它遇到错误时它只会使程序崩溃。我很乐意提供任何其他信息。提前致谢。
解决方案
推荐阅读
- java - JavaFX 应用程序在嵌入 gif 的场景在慢速系统中启动之前显示了几分之一秒的空白阶段?
- spring - DispatcherServlet 和控制器(Tomcat 状态 500)
- jenkins - 如何将参数传递给 Jenkins DSL 内联 shell 脚本?
- d3.js - d3.JS 工具提示不会像预期的那样在鼠标移出时隐藏,而是在鼠标悬停时复制而不是移动
- c++ - 如何为某个任意数组专门化一个函数模板?
- python - 使用 driver.find_elements_by 返回不是元素 ID 的东西
- vue.js - 在 Vue 3 中,VUEX 4 突变无法访问 this._vm。如何解决?
- google-analytics - 跟踪国际化网站的最正确方法?
- hibernate - 当实体与其他两个实体关联时,JPA deleteById() 不起作用
- javascript - 在另一个函数之前强制 setState