Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm läuft auf XP aber nicht auf Vista (https://www.delphipraxis.net/152967-programm-laeuft-auf-xp-aber-nicht-auf-vista.html)

ScarFace01 15. Jul 2010 02:38

Programm läuft auf XP aber nicht auf Vista
 
Ich bastel an einem Programm. Auf Win XP läuft es ohne weitere Probleme doch auf Win Vista lässt es sich noch nicht einmal starten. Hat vielleicht jemand von euch nen Tip für mich, wie ich da Programm auch auf Vista zum laufen bekomme?

Ich bekomme folgende Meldung bei Vista:

Zitat:

Die Anwendung konnte nicht richtig initialisiert werden (0xc0000022).
Klicken Sie auf "OK", um die Anwendung zu beenden.
Womit könnte der Code zu tun haben? Ist das ein bekanntes Problem?

Habe bereits versucht das Programm mit "Administrator Rechten" zu starten und auch den Kombatibilitätsmodus versucht. Alles bisher ohne Erfolg!

Das Programm verwendet soweit keine OnCreate / OnActivate / OnShow Proceduren!

Was bedeutet "Initialisieren" und was wird dabei gemacht? Welcher Code Abschnitt ist dort zuständig bzw. wo sollte/könnte ich nach dem Fehler suchen?

Ich benutze "Delphi 6 Enterprise"!

Vielen Dank im Vorraus an alle.

toms 15. Jul 2010 05:00

AW: Programm läuft auf XP aber nicht auf Vista
 
Hallo

Es gibt paar geniale Tools, welche dir helfen, Fehler aufzuspüren.


Z.B: MadExcept zeigt dir im Normalfall die genaue Fehlerstelle im Code an. Madexcept ist schnell installiert, keine Zeile im Code muss angepasst werden und erfüllt seine Aufgabe sehr gut.

Zitat:

madExcept was built to help you locating crashes in your software. Whenever there's a crash/exception in your program, madExcept will automatically catch it, analyze it, collect lots of useful information, and give the end user the possibility to send you a full bug report.

some facts:

· no need to distribute additional files, cause madExcept is fully linked into your executable
· the size of your executable file grows only by some percent (usually single digit)
· you don't need to change a single line of code in your project
· there's no performance loss, as long as no exception occurs
· full support for multi threaded applications
· full support for third party translation tools
· full support for third party protection/compression tools
· email, web upload and printing functionality included
· free for non-commercial usage, inexpensive for commercial usage

hoika 15. Jul 2010 06:55

AW: Programm läuft auf XP aber nicht auf Vista
 
Hallo,

ich steuere mal das ACT von MS dazu.

Was macht denn dein Programm beim Start ?
Eine Vermutung:
Irgendwas aus dem Programme-Verzeichnis laden/schreiben ...


Heiko

ScarFace01 15. Jul 2010 18:15

AW: Programm läuft auf XP aber nicht auf Vista
 
Am Anfang tut es rein garnix. Wie gesagt, kein OnCreate, OnShow, OnActivate oder so. Noch nicht einmal ein Timer läuft von Anfang an.

Könnte es vielleicht dadran liegen, dass das Tool eine *.Dll verwendet die aber direkt mit der Anwendung zusammen in einem Ordner liegt?

Ich teste mal eben das oben genannte Tool und mache danach noch einmal Meldung.

Schade, hatte gehofft, dass ihr solche Probleme kennt und es ne einfache und schnelle Lösung dafür gibt. Naja, wieso sollte ich solch ein Glück haben? *g

xZise 15. Jul 2010 18:34

AW: Programm läuft auf XP aber nicht auf Vista
 
Moin,
also ich würde mal sagen es fehlt eine DLL ;)

MfG
Fabian

himitsu 15. Jul 2010 18:42

AW: Programm läuft auf XP aber nicht auf Vista
 
Wenn eine statisch gelinkte DLL fehlt, dann gibt Windows da eigentlich eine halbwegs aussagekräftige Fehlermeldung aus.
Und bei einer dynamisch gelinkten DLL sollte der Programmierer da was Passendes veranstalten.

ScarFace01 15. Jul 2010 18:55

AW: Programm läuft auf XP aber nicht auf Vista
 
Also dieses "MadExcept" was "Toms" gepostet hatte, schnalle ich nicht ganz. Ist irgendwie kein Programm sondern Sourcen. Soll das so? Aber so viele verschiedene und daher habe ich leider keine Ahnung was wo hin und wieso*g

Ich gucke noch mal wegen der *.dll aber sie ist ganz normal bei liegend.

himitsu 15. Jul 2010 19:24

AW: Programm läuft auf XP aber nicht auf Vista
 
MadExcept kannst du in Delphi installieren
und dann bindest du nur noch die Unit madExcept in dein Projekt ein,
am Besten gleich als erste Unit in deinem Projekt (DPR).

Dadurch werden dann große Teile der Exception-Behandlung durch MadExcept übernommen und bei auftretenden Fehlern dann von diesem behandelt:
- ausagekräftigere Fehlermeldungen
- ich glaub 'ne Logdatei war auch möglich
- man kann sich sogar einen Fehlerreport per Mail zusenden lassen
(macht sich gut, wenn das Programm irgendwo im Einsatz ist und man so mehr Fehlerinformationen bekommt, als von einem "nichtsverstehendem" Kunden, welcher aufgetretene Fehler nicht beschreiben kann)

ScarFace01 16. Jul 2010 19:16

AW: Programm läuft auf XP aber nicht auf Vista
 
Habs mal installiert und eingebunden. Mein Programm wurde nach dem Compilieren gleich mal doppelt so groß, was für mich heist, dass es auch wirklich eingebunden ist.

Habe das Programm dann wieder zum Vista Rechner gesendet und nach wie vor die selbe Mitteilung erhalten. Leider aber auch nichts anderes also keine Meldung vom MadExpect oder so. Die Anwendung konnte einfach nicht initialisiert werden.

rollstuhlfahrer 17. Jul 2010 10:02

AW: Programm läuft auf XP aber nicht auf Vista
 
das ist doch eine Anwendung von dir. Wenn du ein wenig Zeit hast, kannst du ja mal anfangen, allen Code auszukommentieren und stückchenweise wieder die Kommentare zu löschen, also dem Programm seine Funktionen wieder zu geben. Irgendwann sollte der Zeitpunkt kommen, wann die Fehlermeldung wieder kommt. Da du ja keine anfänglichen Aktionen hast, würde ich mal auf eine nicht willige Komponente schließen.

Bernhard

ScarFace01 17. Jul 2010 16:27

AW: Programm läuft auf XP aber nicht auf Vista
 
Mittlerweile habe ich glaube ich den Fehler gefunden!

Es ist glaube ich ein Befehl der unter vista nicht mehr klappt. Naja und dieser Befehl ist halt in der dll drinne.

Habe an anderer Stelle hier im Forum bereits den Befehl genannt und hoffe, es kann mir jemand mit nem anderen Befehl weiter helfen den ich anstelle dessen verwenden kann.

Ich suche ihn kurz raus!

Edit:
Delphi-Quellcode:
...
if hHook=0 then
    hHook:=SetWindowsHookEx(WH_KEYBOARD,@KeyboardProc,hInstance,0);
  Result:=hHook<>0;
...
Der Befehl SetWindowsHookEx() geht unter Vista wohl nicht mehr wie ich gelesen habe. Hat da jemand ne Alternative für mich?

p80286 17. Jul 2010 23:43

AW: Programm läuft auf XP aber nicht auf Vista
 
Zitat:

Zitat von ScarFace01 (Beitrag 1035859)
Mittlerweile habe ich glaube ich den Fehler gefunden!

Glauben ist ja an sich eine feine Sache, Wissen wäre aber vorzuziehen.
Was sagt denn der Debugger dazu?

Gruß
K-H

Luckie 18. Jul 2010 10:15

AW: Programm läuft auf XP aber nicht auf Vista
 
Zitat:

Zitat von ScarFace01 (Beitrag 1035859)
Der Befehl SetWindowsHookEx() geht unter Vista wohl nicht mehr

Was heißt "geht nicht mehr"? Was sagt denn GetLastError?

rollstuhlfahrer 18. Jul 2010 18:20

AW: Programm läuft auf XP aber nicht auf Vista
 
Einspruch. Laut MSDN wurde MSDN-Library durchsuchenSetWindowsHookEx nicht abgeschafft.

Zitat:

Zitat von ScarFace01 (Beitrag 1035859)
Der Befehl SetWindowsHookEx() geht unter Vista wohl nicht mehr wie ich gelesen habe. Hat da jemand ne Alternative für mich?

Quelle?

Bernhard

ScarFace01 24. Jul 2010 00:15

AW: Programm läuft auf XP aber nicht auf Vista
 
Also ich nehme alles zurück!

Ich hatte halt etwas gelesen, dass dieser Befehl bei vielen Leuten Probleme machte und es dort oft zu der Aussage kam mit dem Vista.

Aber egal erst einmal!

Ich habe jetzt auf dem Vista Rechner einfach mal mein Delphi installiert und versucht von dort aus das Programm neu zu compilieren. Erfolglos! Genau der selbe Fehler und Delphi hat mir dabei auch nicht wirklich weiter geholfen außer dass es den Debugger angeworfen hat was mir aber auch nicht viel brachte.

Also habe ich angefangen alle Funktionen und Befehle Stück für Stück mit {} raus zu filtern um dann irgendwann mal das compilieren zu schaffen. Fehlanzeige! Nix.

Als nächstes habe ich dann das komplette Programm von Anfang an neu geschrieben und immer mal wieder geguckt ob alles klappt.

Tja und wieso auch immer, es klappt alles! Ich habe Haar genau alles genauso gemacht wie bei dem ersten Programm. Es ist quasi eine Eins zu Eins Kopie dabei endstanden. Aber ohne einen einzigen Fehler bzw. ohne diesen Initialisierungs Fehler.

Kann mir das irgend jemand erklären?:shock: Ich verstehe es nicht. Eigentlich könnte es mir ja jetzt egal sein, da ja jetzt endlich alles wieder funzt aber fürs nächste mal wüsste ich es gerne.

Trotzdem Danke an alle!

rollstuhlfahrer 24. Jul 2010 19:12

AW: Programm läuft auf XP aber nicht auf Vista
 
Problem dabei ist, dass Delphi wohl mit einer Chance von 1:1.000.000.000 Mist baut. Und du bist halt jetzt mal Opfer dieses Mists geworden. Das Problem ist bekannt, lässt sich bloß nicht reproduzieren. Andere haben solche Probleme gelöst, indem sie a) Delphi neu gestartet haben, b) den Rechner neu gestartet haben, c) eine Nacht geschlafen haben oder d) Den kompletten Programmtext in ein anderes Projekt kopiert haben (ähnlich dem, was du gemacht hast). Eine andere Möglichkeit ist auch mal die DCUs zu löschen, weil Delphi auch hin und wieder mal nicht mit veränderten Units jonglieren kann. Aber dennoch Glückwunsch, du hast es ja geschafft.

Bernhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz