저는 여기 새로워 영어가 제멋대로입니다. 불편을 끼쳐 드려 죄송합니다.Windows Mobile에서 기본 코드가있는 파일을 읽는 중 오류가 발생했습니다.
Windows Mobile 용 응용 프로그램을 원시 코드 (MFC)로 프로그래밍하고 있습니다. 나는 파일을 열려고하는데, 이것이 나를 미치게 만든다. 나는 ... 천 개의 다른 방법으로 엽니 다 해봤 그리고 난 정말 그것을 달성,하지만 난 어떤 설명없이 (fread
또는 getline
) 프로그램 충돌을 읽으려고 할 때 :
The program 'x' finalize with code 0 (0x0)
GetLastError()
방법, 그것은 모든 경우의에 입력
std::wifstream file(L"\\Archivos de programa\\Prog\\properties.ini");
wchar_t lol[100];
if (file) {
if(!file.eof()) {
file.getline(lol,99);
}
}
만의 getline 충돌 : 어떤 경우에, 그런 나에게 183
를 반환, 내가 파일을 여는 데 사용했던 코드를 삽입.
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()
, 나는 고집한다.
나는 완전히 미쳐 가고 있습니다! 나는 약간의 단서가 필요하다, 제발!
파일 경로가 정확합니다. 첫째, 이론적으로, 메소드가 파일을 열고, 두 번째로, 나는 경로를 dinamically 얻습니다.
fread
방법도 충돌하는 것을 강조하십시오.
미리 감사드립니다.
는PS :
내가 어떤하면 fopen을 수행 할 때, 메소드 fp.good은() 나 FALSE 반환하는 말, 내가 fp.fopen(path, ifstream::in);
또는 std::wifstream fp(path);
를 사용하는 경우 GetLastError가, 다른 한편으로 나에게 183을 반환 fp.good();
나에게 TRUE
을 반환 , GetLastError()
은 오류 (0)를 throw하지 않습니다.
사실 내 응용 프로그램이 Windows Mobile 용으로 프로그래밍되어 있습니다. Windows Mobile에는 드라이브가 없으며 현재 디렉토리에 대한 아이디어가 없습니다. 다른 점은 그것이 지원되지 않기 때문에 GetProfileString을 사용할 수 없다는 것입니다. 내 응용 프로그램을 모든 창 모빌과 호환되도록 Pocket PC 2003 SE 용으로 프로그래밍하고 있습니다. Windows Mobile 응용 프로그램에서 실행되지 않는다고 생각하기 때문에 프로세스 모니터를 사용할 수 없습니다. 'ruta '는 경로의 synonim입니다. 그리고 .ini 파일의 경로가 저장됩니다. 고맙습니다, xtofl. 그리고 내 게시물을 편집 해 주신 gf에게 감사드립니다. – Newlog
Windows Mobile 용 프로세스 모니터가 없습니다 ... 아니면 틀렸습니까? 있을 경우 링크를 게시 해주십시오. 나는 항상 그런 툴을 원했다. (내 자신을 쓸만큼 열심히는 아니지만) – atzz