gpt4 book ai didi

c++ - 在 Windows Mobile 上使用 native 代码读取文件时出错

转载 作者:太空宇宙 更新时间:2023-11-04 14:28:17 24 4
gpt4 key购买 nike

我是新来的,我的英语不是很好。不便之处敬请谅解!

我正在使用 native 代码 (MFC) 为 Windows Mobile 编写应用程序。我正在尝试打开一个文件,这让我抓狂。我试过以一千种不同的方式打开它......我真的做到了,但是当我尝试读取(freadgetline)时程序崩溃了任何解释:

The program 'x' finalize with code 0 (0x0)  

在某些情况下,GetLastError() 方法返回 183。

然后,我将用于打开文件的代码放入:

std::wifstream file(L"\\Archivos de programa\\Prog\\properties.ini");  
wchar_t lol[100];
if (file) {
if(!file.eof()) {
file.getline(lol,99);
}
}

它进入了所有的 if,但是 getline 崩溃了。


FILE * lol = NULL;  
lol = _wfope n(ruta, L"rb");
DWORD a = GetLastError();
if ( lol != NULL )
return 1;
else
return -1;

它返回 1(正确),之后,在后面的 getline 中,它在字符串上存储垃圾。但是,它不会崩溃!


fp.open (ruta, ifstream::in);  
if ( fp.is_open() ) {
return 1;
}else{
return -1;
}

它在返回 1 时进入,但在执行后面的 getline() 时崩溃。

我已经调试了 getline() 方法,它在库 fstream 上崩溃了,就在那里:

if ((_Meta = fget c (_File)) == EOF)  
return (false);

如果。 fgetc(),我想。

我要疯了!!我需要一些线索!!
文件路径正确。首先,因为从理论上讲,这些方法打开了文件,其次,我获得了动态路径并且它匹配。

强调 fread 方法也会崩溃。

提前致谢!

附言:
假设当我执行任何 fopen 时,方法 fp.good() 返回 FALSE,GetLastError 返回 183。另一方面,如果我使用 fp.fopen(path, ifstream::in);std::wifstream fp(path); fp.good(); 返回我 TRUE,而 GetLastError() 不会引发任何错误 (0)。

最佳答案

提示:使用 Process Monitor工具来查看文件系统调用中出了什么问题。

wifstream 接受的路径缺少驱动器("C:"之类的)(我不知道ruta 变量指向什么)

除了流问题本身,使用 GetProfileString 可以为自己省去很多麻烦。和相关函数,当使用 windows .ini 文件时。

关于c++ - 在 Windows Mobile 上使用 native 代码读取文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1741591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com