locked
Windows 7 (64bit) / FoxPro9 exe startet nicht RRS feed

  • Frage

  • Habe einen Rechner mit Windows 7 (64bit) neu installiert. Nun läuft VFP9 SP2 Programm (kompilierte exe) nicht mehr. Fehlermeldung: schwerer Ausnahmefehler C0000005. Programm läuft auf allen anderen Win XP-rechnern problemlos. Programm und Daten liegen auf Fileserver. Probeweise auf lokale HD verschoben und neu kompiliert - gleicher Fehler.
    VFP9 Entwicklungsumgebung läuft auf Win7-rechner, einzelne Fenster (Programme) innerhalb der Entwicklungsumgebung ebenso.
    Bei Aufruf der EXE über DEBUG kann ich keine Programme anwöhlen.
    Liegt das Problem in der Zugrifssverwaltung von Win7? Wie kann ich auf Fehlersuche gehen?
    Danke im Voraus!
    Donnerstag, 18. März 2010 11:43

Alle Antworten

  • 
    Hallo PLuetzelberger
     
    Es gibt eigentlich kein Grund, warum deine EXE nicht laufen sollte...
    Hast du denn auch die Runtimes etc sauber installiert?
    Sicherheitshalber mal den hier drüberbügeln:
     
     

    wOOdy
    Microsoft Visual FoxPro Technology Advisor
    Microsoft "Most Valuable Professional" from 1996 to 2009
    Visit my XING profile! Don't know what XING is?

    *´¨)
    ¸.·´¸.·*´¨) ¸.·*¨)
    (¸.·´. (¸.·` *
    .·`.Visual FoxPro: It's magic !
    (¸.·``··*


     

    • Als Antwort vorgeschlagen Tom Borgmann Freitag, 23. Juli 2010 07:40
    Freitag, 19. März 2010 11:12
  • Lieber Herr Wondzinski,

    herzlichen Dank für Ihre Antwort. Ich habe das bereits überprüft (auch mit Ihrem Link), alle DLLs etc. sind an ihrem Platz. Meine EXE ist auch nicht weiter anspruchsvoll, ich bearbeite damit nur einige Tabellen. Auffällig ist, dass auch die Entwicklungsumgebung bereits bei kleinen Fehlern ebenso zickig reagiert. Sie läuft zwar anstandslos, aber nur solange ich keine Fehler mache. Beispiel: ich will an einer Tabelle (in der Entwicklungsumgebung) etwas an der Struktur ändern, habe aber aus Versehen noch diese Tabelle offen. Da kommt sonst eine kleine Fehlermeldung - und gut ist. Nun kommt die Fehlermeldung, aber danach stürzt die Entwicklungsumgebung ab.

    Zurück zu dem Ursprungsproblem: auf einem XP-rechner kann ich die EXE über den Debugger von VoxPro starten, dort kommt dann eine Auswahl an Programmen meiner Anwendung, die unter Debug starten kann. Nun (Windows7) kann ich diese Programme meiner Anwendung nicht anwählen (sind zwar sichtbar, aber nicht anwählbar).

    Ich hatte auch erst den Verdacht, dass einige DLLs (bzw. irgendwelche Support-Routinen) nicht auf meinem Win7-Rechner auffindbar sind. Aber ich habe diese Dateien mittlerweile in alle - mir irgendwie wichtig erscheinden - Verzeichnisse kopiert. Ohne Erfolg.

    Könnte es vielleicht sein, dass meine EXE dadurch verwirrt wird, dass VoxPro nunmehr in einem Ordner "Programme (x64)" liegt, es jedoch einen weiteren Ordner "Programme" gibt? Kann/darf ich VoxPro im "Programme"-Ordner installieren? Was soll überhaupt diese Begriffsverwirrung? Und: nachdem ich im Explorer auch versteckte Dateien udn Ordner anzeigen lasse, gibt es einen zweiten Ordner "Programme" (mit identischem Namen!), der aber gesperrt ist und sich auch nicht entsperren läßt. Das könnte doch eine Erklärung sein: FoxPro kann durch den gesperrten Ordner nicht auf seine Librarieres zugreifen. Dann Folgefrage: wie entsperre ich diesen Ordner? Darf ich ihn (oder den nicht gesperrten "Programme"-Ordner gar umbenennen? Ich bin auf dem Win7-Rechner immer als Admin angemeldet, sollte also alle notwendigen Rechte besitzen. Dennoch: einfaches  Freigeben des gesperrten "Programme"-Ornders über "Einstellungen"-Fenster wird nicht zugelassen.

    Erneut: herzlichen Dank für Antworten! // Peter Lützelberger

    Freitag, 19. März 2010 11:59
  • 
    Hallo Peter,
     
    >> Aber ich habe diese Dateien mittlerweile in alle - mir irgendwie wichtig erscheinden - Verzeichnisse kopiert. Ohne Erfolg. <<
     
    Wundert mich nicht. Unter Windows werden viele Dateien über die Registry gesucht und geladen, das reine Rumkopieren bringt nur Verwirrung und damit Frust und Ärger.  Der Runtime-Installer kopiert alles an die richtigen Stellen und registriert die notwendigen Infos automatisch. Du musst nix rumkopieren.
     
     
    >> Könnte es vielleicht sein, dass meine EXE dadurch verwirrt wird, dass VoxPro nunmehr in einem Ordner "Programme (x64)" liegt, <<
    Wie zum Geier kommt sie da rein? Wer hat sie da hin installiert?  FoxPro-Programme sind reine 32Bit-Programme, und haben daher nix in diesem speziellen Ordner zu suchen, der für 64Bit-Programme reserviert ist.  Räum den Kram da raus und pack es in den normalen "Programme" Ordner rein.
     
    >> Was soll überhaupt diese Begriffsverwirrung?
    Die Fragestellung lässt mich vermuten, dass du dich mit Rechnerarchitekturen und dem Unterschied 32bit zu 64bit noch nicht recht auseinandergesetzt hast. Führt dann auch zwangsläufig zu der Frage: Warum hast du dir überhaupt ein 64Bit-Betriebssystem gekauft?  Im normalen Desktop-Anwendungsbereich gibt es derzeit keinerlei Grund dazu, ausser du würdest Applikationen verwenden, die mehr als 2Gbyte Ram für sich alleine benötigen (was aber äusserst selten ist; CAD-Programme oder einige spezielle Videoschnittsysteme sind die einzigen Kandidaten, die mir da einfallen). Ansonsten sind 64Bit nur im Serverbereich sinnvoll.
     
    Aber zurück zu deiner Verwirrung ;) Rein prinzipiell: Früher gab es das "c:\Program Files" Verzeichnis, das weltweit aber je nach lokalisierter Windows Version immer unterschiedlich hieß (bei uns eben "c:\Programme"). Daraus folgte, dass es über 100 verschiedene Namen auf der Welt für diesen Ordner gab, was supporttechnisch ein Albtraum ist... In Win7 gibt es nur noch den Original-Ordner "\program files", der dann im Explorer nur noch über einen Lokalisierungseintrag in der "desktop.ini" (ist ne versteckte Datei in diesem Ordner) an die jeweilige Benutzersprache angepasst wird.
     
    Dieser Ordner ist der Speicherplatz für alle ausführbaren Dateien, Aus Sicherheitsgründen haben in diesem Ordner normale Anwender sinnvollerweise auch keinerlei Schreibrechte.  Mit der Einführung der 64Bit-Programme wurde es notwendig, einen zweiten Ordner für diese speziellen Programme zu definieren, und das ist eben der "Programme (x64)" Ordner. 
     
    Soweit zur hervorragend gedachten Theorie. Dummerweise hat sich dann rausgestellt, dass es doofe Programmierer gibt, die das "c:\programme" hartcodiert in ihre Routinen reinschreiben, anstatt nen Systemaufruf zu bemühen, der ihnen den korrekten Pfad zum Programme-ordner zurückgeben würde. D.h. Ein ganzer Schwung Anwendungen würde Fehler melden, weil sie eigentlich schlampig programmiert sind, aber schuld wär natürlich Microsoft....  Daher gibts extra wegen den Schlampern sogenannte Hard-Links (ist im Prinzip ähnlich einer Verknüpfung), damit man einen zweiten Namen für das selbe Verzeichnis zur Verfügung stellen kann. Damit der normale Anwender (wie du) eben nicht verwirrt wird, sind diese Helfer-Einträge im Normalfall versteckt, damit nur doofe Programme sie finden können.
     
    Und dann gibts da noch die Programme, immer noch im schreibgeschützten \Programme\ Ordner was wegschreiben wollen (egal ob INI Einträge oder DBFs). Seit anno Windows2000 (also seit 10 Jahren) gibt's die Regel, dass der Programme-ordner besonders geschützt ist, und die Applikationsdaten woanders hingehören.... Trotzdem lassen sich solche Programme nicht ausmerzen (bzw die User wollen keine neue Version kaufen?) Damit Schreibvorgänge im \Programme\  Ordner dann nicht zu schnöden Fehlern führen, tut Windows7 nun im Hintergrund diese Schreibvorgänge abfangen und diese in ein "Virtualisiertes Verzeichnis" im Benutzer-Ordner umleiten, sodass die App garnicht merkt, dass sie eigentlich was Verbotenes tut.
     
     
    >> FoxPro kann durch den gesperrten Ordner nicht auf seine Librarieres zugreifen. <<
    Nein. Wenn es nicht zugreifen könnte, würde es garnicht gestartet sein....
     
    >> wie entsperre ich diesen Ordner? Darf ich ihn (oder den nicht gesperrten "Programme"-Ordner gar umbenennen?  <<
    Klasse Idee... Warum meinst du, sind diese Ordner (bzw korrekterweise: Hardlinks) normalerweise versteckt?
     
    >> Ich bin auf dem Win7-Rechner immer als Admin angemeldet, sollte also alle notwendigen Rechte besitzen. <<
    Nein, auch ein Admin ist im Normalfall ein normaler User und arbeitet mit normalen Rechten. Ein Admin hat gegenüber einem normalen User nur die zusätzliche Befugnis, besondere Aktionen direkt anzustarten, und nur dabei werden dann temporär seine Rechte erhöht (der berühmte UAC-Dialog)
     
    >> einfaches Freigeben des gesperrten "Programme"-Ornders über "Einstellungen"-Fenster wird nicht zugelassen. <<
    Ist auch gut so. Ansonsten könnt ich dir nur raten, dein Windows neu zu installieren, damit dein Gemurkse wieder rückgängig gemacht wird.
     
     
    Langer Rede kurzer Sinn:
     
    a) Informier dich über die Neuerungen in Windows 7
    b) Les dich zu x64 ein
    c) mach dich schlau zu den Benutzerrechten
    c) Installier dein Windows nochmal neu, denn vermutlich wirst du all deine rumkopierten Dateien und Rechte-Verbiegungen nie mehr nachvollziehen können
     
    d) installier den Runtime-Installer von ftp.prolib.de/public/ und dann
    e) kopier deine EXE in ein eigenes Verzeichnis im c:\programme\ Ordner.
     
    f) Für die Installation der VFP9 Entwicklungsumgebung in Win7 liest du hier:

    http://woody-prolib.blogspot.com/2010/01/vfp9-komplett-installieren.html <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>

    <o:p> </o:p>

    <o:p> </o:p>

     

    wOOdy
    Microsoft Visual FoxPro Technology Advisor
    Microsoft "Most Valuable Professional" from 1996 to 2009
    Visit my XING profile! Don't know what XING is?

    *´¨)
    ¸.·´¸.·*´¨) ¸.·*¨)
    (¸.·´. (¸.·` *
    .·`.Visual FoxPro: It's magic !
    (¸.·``··*


     

    • Als Antwort vorgeschlagen Tom Borgmann Freitag, 23. Juli 2010 07:40
    Freitag, 19. März 2010 15:25
  • Vielen Dank.  Es läuft nun endlich. Die Ratschläge führten zwar nicht zu m Ziel, aber eine Neuinstallation von FoxPro hat irgend etwas verändert...

    Eine Bemerkung mag ich mir hier aber nicht verkneifen: als normaler Mensch, der seit vielen Jahren mit Erfolg seine geschäftlichen Anwendungen mit FoxPro unterstützt, muss ich mich sicherlich nicht als Vollidiot hinstellen lassen! Ich bin durchaus NICHT der Meinung, dass ich bei Erwerb eines (soweit ich das beurteilen kann - tollen!!) Betriebssystems zunächst die kompletten Entwicklerunterlagen durcharbeiten muss. Ihre Annahmen sich schlicht und falsch! Beispiel: der Installer installiert unter Win7 eben NICHT alles an die richtige Stelle! Dass irgendwo eine kleine Datei die englischen Verzeichnisnamen ein-deutscht, darauf muss man (finde ich zumindest) erst mal kommen! Nebenbei: das Problem hatte damit dann gar nichts zu tun. Vermutlich war mein Programm gar nicht das Problem, sondern die automatische Installation von FoxPro. Erst nach händischem Ändern des Verzeichnisses für FoxPro bei dessen Installation läuft nun auch mein Programm. Warum auch immer...

    Also: ein kleines bisschen weniger Arroganz tut auch einem Fachmann gut.

    Dennoch: Danke für die Zeit, die Sie sich genommen haben. Denn letzten Endes zählt, dass es nun läuft. Danke!

     

    Samstag, 20. März 2010 10:35
  • 
    Hallo Peter,
     
    Zuerst einmal: In der Online-Welt duzt man sich, das ist schon seit einigen Jahrzehnten so. Betrachte Online-Foren einfach wie ein Programmierertreffen unter Kollegen. Da wirst du auch keinen Siezen, wohl aber wirst du da unter Umständen auch mal angeflaxst, oder mit etwas lockeren redensarten beglückt ;)
     
    >> muss ich mich sicherlich nicht als Vollidiot hinstellen lassen!
     
    ich hab dich nicht als einen Solchenen ;) hingestellt. Wenn du dich auf den Schlips getreten fühlst und dich da vielleicht auf den Begriff GEMURKSE beziehst: ich bezeichne damit jedwedes "Rumbasteln ohne zu wissen was man tut". Und genau das hast du durch deine Aussagen (wie: Umbenennen vom Programme Ordner, oder Löschen von Hardlinks bzw das Unverständnis über die Rechte-Thematik) eigentlich zum Ausdruck gebracht.
     
    >>  der Installer installiert unter Win7 eben NICHT alles an die richtige Stelle!
    Was genau hat er denn an ne falsche Stelle installiert?
     
    >> Erst nach händischem Ändern des Verzeichnisses für FoxPro bei dessen Installation läuft nun auch mein Programm.
    Ähem: Der Installer von VFP9 kann ja garkeine Verzeichnisse anzeigen, weil er eben unter Vista/Win7 einen Bug hat. So auch in meiner Anleitung aufm Blog beschrieben. D.h. die Eingabe des falschen Verzeichnisses kann nur von dir gekommen sein.
     
     
    >> ein kleines bisschen weniger Arroganz tut auch einem Fachmann gut
    Es ist nicht Arroganz, sondern einfach der Frust über deine Herangehensweise bei Problemen. Wenn du "seit vielen Jahren mit Erfolg seine geschäftlichen Anwendungen mit FoxPro unterstützt", dann solltest du dich schon vor einigen Jahren mit Vista beschäftigt haben, denn da war diese Thematik der weltweit gleichen Verzeichnisnamen schon das erste Mal eingeführt worden.  Die Thematik mit den Security-Einstellungen gabs schon in WinXP, nur hats da keiner Ernst genommen, sondern ist immer, trotz besseren Wissens, als Voll-Admin dahingesegelt.
     
    Wenn man Kunden und Anwender seiner Programme unterstützen will, wenn man Programme für Windows erstellt, dann muss man auch zwangsläufig sich mit den Fähigkeiten und Gesetzmässigkeiten des Betriebssystems auseinandersetzen. Und wenn ne neue Windows-Version erscheint, dann muss man sich auch darauf ausbilden bzw einarbeiten, und kann nicht alles Neue einfach erstmal als Unsinn und Verwirrend abtun.
     
    In diesem Sinne: Weiterhin viel Spass mit dem Besten aller Entwicklungssysteme: FoxPro (das man übrigens mit "F" und nicht mit "V" schreibt ;) )
     

    wOOdy
    Microsoft Visual FoxPro Technology Advisor
    Microsoft "Most Valuable Professional" from 1996 to 2009
    Visit my XING profile! Don't know what XING is?

    *´¨)
    ¸.·´¸.·*´¨) ¸.·*¨)
    (¸.·´. (¸.·` *
    .·`.Visual FoxPro: It's magic !
    (¸.·``··*


     

    • Als Antwort vorgeschlagen Tom Borgmann Freitag, 23. Juli 2010 07:40
    Sonntag, 21. März 2010 14:40