在函数中声明的 ifStream 对象在发布模式下不起作用
ifstream object declared inside a function not working on release mode
我正在开发我的第一个应用程序,我实际上打算给其他人使用它,所以我正在尝试执行漏洞部署过程(在Qt上(,并在之后创建一个安装程序。
问题是我的代码中有一个特定的点(我已经发现了在哪里(,它在调试模式下运行良好,但在发布时我没有想法会发生什么(它没有运行特定功能(。
问题是(只是一个关于的简单示例(,如果在主函数中声明一个 ifstream 对象,则发布.exe运行良好。当我将该对象放在函数上时,它不起作用!我不知道该怎么办。
#include <iostream>
#include <reader.h>
#include <string>
#include <map>
#include <mrp.h>
#include <file_manager.h>
#include <string>
#include <facade_mrp.h>
#include <fstream>
#include <vector>
using namespace std;
void test()
{
fstream f;
f.open("C:\Users\user\Documents\Alexandre\C++\MRP\build-MRP-Desktop_Qt_5_0_2_MinGW_32bit-Release\Demandas.txt",ifstream::in);
f.close();
}
int main(int argc, char* argv[])
{
test();
return 0;
}
请澄清你的意思:">不起作用"。程序崩溃了吗?还是只是它不读取文件的内容?
要解决std::ifstream
的问题,通常可以方便地查看.good()
、.fail()
和.eof()
成员函数。在文档中了解有关它们的更多信息。
如果问题出现在发布配置中,但不出现在调试中,则通常有几个常见的罪魁祸首应该调查:
- 发布版本通常启用了
-O2
或-O3
优化级别,而调试版本则未启用。 - 发布版本通常存储在与调试版本不同的文件系统路径中(检查相对路径(。
希望这有帮助!
相关文章:
- 为什么在保护模式下继承升级不起作用
- 在函数中声明的 ifStream 对象在发布模式下不起作用
- 在 directx11 代码中更改全屏模式下的刷新率不起作用
- 观察者模式不起作用
- 我的代码在发布模式下不起作用,而在Qt的调试模式下工作
- 该代码在调试模式下工作,但在发布模式C 中不起作用
- 窗口处于全屏模式时,QT连接不起作用
- WinRT 库在发布模式下不起作用
- 服务和用户模式进程之间的共享全局事件不起作用
- 以二进制模式写入文件不起作用
- Visual Studio Express 2012 调试模式不起作用
- 释放模式下的 Windbg 不起作用
- C++:为什么这个 sync() 在这个组合模式中不起作用?
- fseek 在"a"(追加)模式下打开文件时不起作用
- 在调试器模式下工作,但在最终版本中不起作用.为什么
- 以"simple c++"模式编译的程序在从QtCreator启动时不起作用
- 在发布模式下进行Qt调试 - 所有方法都不起作用
- 为什么这种单例模式不起作用?
- 在调试模式下编译时,丰富的编辑控件格式不起作用
- 某些内联程序集在 64 位模式下不起作用?