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
Reload Qt dlls.
Aehm, die QT dlls sind keine ActiveX komponenten, die man registrieren kann darf muss ... zum glueckWenn ich Regsvr32 /u c:\Qt\4.3.4\bin\QtCore4.dll eingebe
eigentlich gar ned ^^ von aussen ....Wie kann ich unter windows die qt dlls neu laden?
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 ....
weil das klingt total aussergewoehnlichWenn ein fehler in einer Qt anwendung auftritt lässt sich danach kein
qt programm mehr starten.
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 ...
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.
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)'
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.linse hat geschrieben:kann ich denn loadlibrary und freelibrary manuell starten ?
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.
Jein, normal solltest du das nicht ....loadlibrary und freelibrary manuell starten ?
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 ...