Reload Qt dlls.

Verschiedenes zu Qt
Antworten
linse
Beiträge: 11
Registriert: 27. September 2005 14:09
Wohnort: Berlin
Kontaktdaten:

Reload Qt dlls.

Beitrag von linse »

Hallo beisammen,
habe folgende problem:
Wenn ein fehler in einer Qt anwendung auftritt lässt sich danach kein
qt programm mehr starten.
(win32 exeption ... ).
Wie kann ich unter windows die qt dlls neu laden?
Hatte jemand schon ähnliche probleme ?

(qt 4.3 mingw windows Xp).
Wenn ich Regsvr32 /u c:\Qt\4.3.4\bin\QtCore4.dll eingebe
bekomme ich die Meldung:

was loaded, but the DLLUnregisterServer entry point was not found.
The file can not be registered

mfg Dirk
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Wenn ich Regsvr32 /u c:\Qt\4.3.4\bin\QtCore4.dll eingebe
Aehm, die QT dlls sind keine ActiveX komponenten, die man registrieren kann darf muss ... zum glueck :-)
Wie kann ich unter windows die qt dlls neu laden?
eigentlich gar ned ^^ von aussen ....
Das programm das die dlls verwendet, muss die mit loadlibrary anziehen, und wenn es "fertig" ist, mit freelibrary wieder freigeben. Alles andere haendelt das BS .... da kannst ned viel eingreifen.

Ich vermute eher das deine anwendung da grossen muell baut, bzw. da was anderes voll im argen ist ....
Wenn ein fehler in einer Qt anwendung auftritt lässt sich danach kein
qt programm mehr starten.
weil das klingt total aussergewoehnlich :-)
kann es sein, das dein programm auf der qt dll rumschreibt ?
Wenn du den rechner neustartest, kannst du dann die QT pragromme wieder normal starten ?
Was benutzt dein prog fuer komponenten ?

Normal muesste jeder prozess die dlls getrennt anziehen koennen, ohne sich mit anderen prozessen ins gehege zu kommen ... vielleicht geht das laden schon nicht ? Aber wenns schon mal ging, da iss irgendwo anders was faul , am Betriebssystem oder nen Prozess der versucht in speicherbereiche rumzuschreiben wo er ned sollt ^^

Ciao ...
linse
Beiträge: 11
Registriert: 27. September 2005 14:09
Wohnort: Berlin
Kontaktdaten:

Beitrag von linse »

Nach einen neustart lassen sich alle anwendungen starten.
Auch die anwendungen die schon laufen gehen weterhin.
Habe nur wenig erfarung unter windows, kann ich denn
loadlibrary und freelibrary manuell starten ?

nachtrag:
ab- und wieder anmelden reicht auch schon.
perl -e'&{sub{s~~shift~e;s-(&*{*{*#*L*.Z*.E*.)-chr$&-eg;print}}(100105114107)'
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

linse hat geschrieben:kann ich denn loadlibrary und freelibrary manuell starten ?
Klar, aber wozu? Für die Qt-DLLs ja wohl nicht, die werden auch nicht registriert. Wenn deine App abgestürzt ist und sich andere Qt-Apps dann nicht starten lassen, dann schau mal ob sich deine App noch im Taskmanager findet.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

loadlibrary und freelibrary manuell starten ?
Jein, normal solltest du das nicht ....

die entsprechenden statischen libs (die zu den anwendungen (exe, dll) hinzugelinkt werden) uebernehmen das fuer dich. Also beim programmieren macht man das mit den qt dlls eher seltener :-)

Von aussen kann man das eigentlich auch ned machen, weil das BS verwaltet das fuer den Prozess ... du kannst einzig den prozess killen, und der muesst die dll wieder freigeben ... und das erzwingt das BS sogar ....

Was total ungewoehnlich ist, das wenn eine QT app crasht, selbst wenn sie noch im speicher irgendwo haengt, das ne andere app (exe) die zwar die selben qt dlls benutzt, dann auch haengen bleibt, bzw. nen fehler wirft.

Eigentlich laed windows nur den "Dll Code" einmalig und da kann eiegntlich ned viel schief gehen .... die ganzen datenbereiche (stack, heap) werden eh fuer jeden prozess einzeln aufgezogen ... die duerfen sich ned ins gehege kommen .... normal darf da gar nix blocken ....

und das sind wirklich 2 unnerschiedliche exen, also die die crasht und die andere die dannach nimemr startet ?

Ciao ...
linse
Beiträge: 11
Registriert: 27. September 2005 14:09
Wohnort: Berlin
Kontaktdaten:

Beitrag von linse »

nach dem absturtz (jetzt provoziert),
Wird die Anwendung nicht im taskmanger angezeigt.
perl -e'&{sub{s~~shift~e;s-(&*{*{*#*L*.Z*.E*.)-chr$&-eg;print}}(100105114107)'
Antworten