Handheldgerät-Programm mit VS2008 C++ und MS Device Emulator V3
-
Hallo,
ich möchte mit VS 2008 C++ ein kleines Datenerfassungsprogramm schreiben für ein Handheld-Gerät (SmallDevice) und nutze VS 2008 C++ , die Programm-Simulation erfolgt mit dem MS Device Emulator V3 (Dialog-Titel: "Pocket PC 2003 Second Edition"). Ich habe dafür einen Dialog erstellt und erfasse in diesem eine Kunden-Nr. - diese Nr. muss ich in einer txt-Datei suchen und mein Programm findet leider die Datei nicht (Meldung: "fileNotFound") !!!
Ich habe die Datei schon in alle möglichen Verzeichnisse geschrieben aber bisher ohne Erfolg ...Hier mein Code-Ausschnitt:
m_strLggPath = theApp.m_strCurrDir; m_strLogPath += _T("\\); m_strLogPath += "Kunde.txt"; TRY { CFileException except; int irc = m_File.Open( m_strLogPath, CFile::modeRead | CFile::shareDenyNone, &except ); if (!irc) { // File nicht vorhanden bzw. Open-Fehler: CString str2 = _T(""); switch (except.m_cause) { case CFileException::genericException: str2 = _T("genericException"); break; case CFileException::fileNotFound: str2 = _T("fileNotFound"); break; case CFileException::badPath: str2 = _T("badPath"); break; default: str2.Format(_T(" %d"), except.m_cause); break; } str.Format(_T("File could not be opened : %s\n%s"), str2, m_strLogPath); AfxMessageBox(str, MB_ICONSTOP); return(FALSE); } // Datei geöffnet -> Auswertung ... // ... ToDo ... m_File.Close(); } CATCH(CFileException,e) { ASSERT(FALSE); } END_CATCH
Kann mir da jemand einen Tipp geben in welchem PC-Verzeichnis die Datei "Kunde.txt" stehen muss oder was hier sonst schief geht?
Info: auf meinem Handheldgerät findet das Datenerfassungsprogramm die Datei und kann sie öffnen, aber leider nicht auf meinem Entwicklungs-PC - und hier brauche ich es ja schliesslich um Debuggen zu können etc. ...)
Ist vielleicht im MS Device Emulator etwas einstellen?Freundliche Grüsse an alle und ich freue mich auf euer Tipps.
twinbo
PS: Kennt jemand ein spezielles Forum für SmalDevice-Entwicklung ...
-
Welchen Wert hat
theApp.m_strCurrDir
Wo hast du deine Datei kunde.txt hinkopiert? Auf welchen Pfad versucht dein System zu lesen?
-
... der String "theApp.m_strCurrDir" ist leer ...
Meine Datei "Kunde.txt" steht im Release und Debug - Verzeichnis sowie testweise auch in allen übergeordneten Phaden meines Projektes ...
Es muss mit dem "MS Device Emulator" zusammenhängen - der sucht die Datei irgendwo ...
Ich habe es auch schon mit "C:\\Kunden.txt" versucht ... auch ohne Erfolg ...twinbo
-
Sollte hier echt irgendein Pfad "verbogen" werden, dann könnte ich dir noch Filemon von Sysinternals empfehlen. Da kannst du verfolgen auf welchen Pfad dein Programm tatsächlich zugreift und ob die Datei dann dort vorhanden ist.
Banale Dinge wie Tippfehler, Zugriffsrechte usw. hast du sicher schon kontrolliert, oder?
-
... dann bräuchte ich also Filemon (mir unbekannt) wenn damit die Pfade verfolgbar sind ...
Ich hatte ja geschrieben das das Programm auf dem Handheldgerät funktioniert also die Datei korrekt findet und öffnet - aber halt leider nicht auf meinem Entwicklungs-PC mit dem MS Device Emulator ...Gruss twinbo
-
Wenn in dem Pfad, den du beim CFile::Open angibst, die Datei vorhanden ist, er sie aber dort nicht findet, dann muss dazwischen irgendwas schief gehen. Ich frag noch mal blöd: Hast du schon versucht die Datei auf ein fixes Verzeichnis zu schieben C:\Kunde.txt und exakt dieses Verzeichnis im Programm auch zu verwenden?
Also ohne zusammenbasteln mit theApp.m_strCurrDir?
Geht das?
-
... mit
m_strLogPath = _T("C:\\Kunden.txt");
kommt leider: badPath C:\Kunden.txt
-> auf meinem Entwicklungs-PC und auch auf meinem Handheldgerät das min WindowsCE 5.0 wohl sein eigenes und einzigstes Verzeichnis nicht mit "C:" anspricht ...Fazit: das Programm (lt.Original-Code) läuft auf meinem Handheld-Gerät , aber nicht auf meinem Entwicklungs-PC -> der Device-Emulator sucht in irgendeinem speziellen Verzeichniss ... nur wo ?
Gruss twinbo
-
Ist doch ganz klar:
- es gibt unter WinCE kein "current directory"
- es gibt unter WinCE keine Laufwerksbuchstaben (yay!)
- der Emulator greift nicht auf deine Laufwerke zu, sondern hat eigenes Dateisystem. Da könnte man evtl. dein Host-Dateisystem hinein-mappen. Oder dem VS bei Deployment-Einstellungen sagen, dass die .txt mit 'rüber soll.