![]() |
Programm startet nicht nicht
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo ich hab ein programm geschrieben
![]() wenn man das programm starten will, meldet er das ein fehler vorliegt und windows den fehler senden will das macht er auch nicht immer wenn man 2-3 mal auf starten drückt startet das programm und läuft ganz normal da passiert auch nicht auf allen rechnern ????!!! ich hatte erst ein fehler drauf gleitkommadivision durch null der kam von einer jedi function cpu_speed := CPUID.FrequencyInfo; aber nur bei intel rechner grösser 3 gh ???? hab ne andere function genommen und dann ging es aber bei allen die die fehler hatten , kommt die meldung habe ein fehler festgestellt und will senden - nach ein paarmal klicken startet aber das programm ohne probleme ich hab so das gefühl der fehler tritt nur bei intel rechnern mit ner grossen cpu auf das programm läuft nur unter xp auf allen anderen rechner amd, centrino 1gb bis schlag mich tot läuft alles es ist bei 3 rechnern aufgetretten - alles waren intel und über 3 gh helft bitte |
Re: Programm startet nicht nicht
Hallo Homer,
zeig uns ein bisserl was von Deinem Code, damit wir helfen können. BTW: Benutzt Du TRY/FINALLY Blöcke, ist der Fehler in der JEDI-Function, kann man die vielleicht Patchen... |
Re: Programm startet nicht nicht
Wenn das Image (Demo auf dem Server) seit dem Zeitpunkt nicht geändert wurde, dann passiert die Zugriffsverletzung in TObject.Free().
Das kann alles mögliche sein und/oder ein Folgefehler sein...
Code:
Rubrik Nützliches:
TObject.Free
004039FC test eax, eax 004039FE jz short @@ret 00403A00 mov dl, 1 00403A02 mov ecx, [eax] 00403A04 call dword ptr [ecx-4] 00403A07 @@ret: retn ![]() |
Re: Programm startet nicht nicht
@APP welchen teil des codes willst du sehen
den mit den Gleitkommafehler ? der ist weg benutze jetzt so sieht der neue code aus
Code:
//##############################################################################
//############################################################################## //System Kurz Info CPU Info //############################################################################## //############################################################################## //****************************************************************************** //Global //System Kurz Info Anzeigen Procedure System_KurzInfo_CPU_Auslesen_SYKU(); var cpu_info : TCpuInfo; begin //CPU try cpu_info := CPUID; Haupt_Form.System_KurzInfo_Label14.Caption := cpu_info.Manufacturer; Haupt_Form.System_KurzInfo_Label15.Caption := cpu_info.CpuName; Haupt_Form.System_KurzInfo_Label16.Caption := Format('%f Mhz',[dwCPUClock]); except Haupt_Form.System_KurzInfo_Label14.Caption := Element_Lesen_GU('SKI111');; Haupt_Form.System_KurzInfo_Label15.Caption := Element_Lesen_GU('SKI121');; Haupt_Form.System_KurzInfo_Label16.Caption := Element_Lesen_GU('SKI131');; end; //Prozessor Bild laden if (Pos('AMD', cpu_info.Manufacturer) <> 0) then begin //AMD Haupt_Form.System_KurzInfo_Image1.Picture.Icon := ImageShell_Icon_Lesen_GU('KurzInfo_AMD'); end else if (Pos('Intel', cpu_info.Manufacturer) <> 0) then begin //Intel Haupt_Form.System_KurzInfo_Image1.Picture.Icon := ImageShell_Icon_Lesen_GU('KurzInfo_Intel'); end; //Speicher Haupt_Form.System_KurzInfo_Label24.Caption := Format('%f MB',[(GetTotalPhysicalMemory / 1048576)]); Haupt_Form.System_KurzInfo_Label25.Caption := Format('%f MB',[((GetTotalPhysicalMemory / 1048576) - (GetFreePhysicalMemory / 1048576))]); Haupt_Form.System_KurzInfo_Label26.Caption := Format('%f MB',[(GetFreePhysicalMemory / 1048576)]); //Win Haupt_Form.System_KurzInfo_Label34.Caption := g_win_version_s; //DirectX Haupt_Form.System_KurzInfo_Label44.Caption := dwGetDirectXName; Haupt_Form.System_KurzInfo_Label45.Caption := dwReadFullDirectXVersion; end; das war der alte code
Code:
//##############################################################################
//############################################################################## //System Kurz Info CPU Info //############################################################################## //############################################################################## //****************************************************************************** //Global //System Kurz Info Anzeigen Procedure System_KurzInfo_CPU_Auslesen_SYKU(); var cpu_info : TCpuInfo; cpu_speed : TFreqInfo; begin //CPU Info auslesen cpu_info := CPUID; //CPU Speed auslesen cpu_speed := CPUID.FrequencyInfo; GetCpuSpeed(cpu_speed); //CPU Haupt_Form.System_KurzInfo_Label14.Caption := cpu_info.Manufacturer; Haupt_Form.System_KurzInfo_Label15.Caption := cpu_info.CpuName; Haupt_Form.System_KurzInfo_Label16.Caption := Format('%d Mhz',[cpu_speed.RawFreq]); //Prozessor Bild laden if (Pos('AMD', cpu_info.Manufacturer) <> 0) then begin //AMD Haupt_Form.System_KurzInfo_Image1.Picture.Icon := ImageShell_Icon_Lesen_GU('KurzInfo_AMD'); end else if (Pos('Intel', cpu_info.Manufacturer) <> 0) then begin //Intel Haupt_Form.System_KurzInfo_Image1.Picture.Icon := ImageShell_Icon_Lesen_GU('KurzInfo_Intel'); end; //Speicher Haupt_Form.System_KurzInfo_Label24.Caption := Format('%f MB',[(GetTotalPhysicalMemory / 1048576)]); Haupt_Form.System_KurzInfo_Label25.Caption := Format('%f MB',[((GetTotalPhysicalMemory / 1048576) - (GetFreePhysicalMemory / 1048576))]); Haupt_Form.System_KurzInfo_Label26.Caption := Format('%f MB',[(GetFreePhysicalMemory / 1048576)]); //Win Haupt_Form.System_KurzInfo_Label34.Caption := g_win_version_s; //DirectX Haupt_Form.System_KurzInfo_Label44.Caption := dwGetDirectXName; Haupt_Form.System_KurzInfo_Label45.Caption := dwReadFullDirectXVersion; end; @ NicoDE kannst du genauer werden ? die fehlermeldung mit den "fehler senden" kommen noch vor der oncreate könnte das programm jemand mal testen der ein intel cpu mit über 3 gh hat ? |
Re: Programm startet nicht nicht
Zitat:
Sprich es wurde versucht ein nicht (mehr) vorhandenes Objekt freizugeben. Dies kann tausende Gründe haben und ist möglicherweise nur ein Folgefehler beim Versuch das Programm zu beenden. Deswegen wären mehr Informationen nötig um das Problem auf einen bestimmten Bereich einzuschränken (am besten wäre ein Callstack, obwohl das bei der Aufrufkonvention register nicht gerade einfach ist...). Ansonsten wirst Du nur mit den langwierigen Methoden vorwärts kommen (Remote-Debugging, 'kreatives' Auskommentieren, ...) madExcept ist für nicht-kommerzielle Zwecke Lizenzkosten-frei und könnte wertvolle Hinweise bei einem Kunden mit dem Problem liefern. |
Re: Programm startet nicht nicht
@NicoDE
das hab ich schon gemacht - sprich alles was ich in der oncreate mache nur soweit komme ich nicht der fehler "Fehler senden" kommt vorher - also in den augenblick wo man das programm start was ich nur nicht verstehe - bisr jetzt - nur bei intel und rosser cpu und ich weiß nicht wo ich da suchen soll |
Re: Programm startet nicht nicht
Zitat:
(von einem Fehler im RTL-Init-Code gehe ich erstmal nicht aus, obwohl es nicht ausgeschlossen ist) |
Re: Programm startet nicht nicht
aber warum nur bei bestimmten system - kann ich das irgendwie überprüfen?
habe fremdkomponenten benutzt jedi jcl/jvcl mxstatusbar mxoutlookpro delphiwoks benutze d7 pro das ist eigentlich alles bei der JclSysInfo Haupt_Form.System_KurzInfo_Label16.Caption := Format('%d Mhz',[cpu_speed.RawFreq]); kamm der gleitkommafehler hab ich durch Format('%f Mhz', [dwCPUClock] getauscht, dann war der fehler weg |
Re: Programm startet nicht nicht
Zitat:
Warum es nur bei Intel-Prozessoren auftritt, ist eine gute Frage... (synchrones Multithreading durch HTT?) |
Re: Programm startet nicht nicht
hab mir madExcept runtergeladen - leider ist mein englisch schlecht
weiß nicht wie ich es einbinden soll kannst du da helfen - so das ich damit was anfangen kann ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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 by Thomas Breitkreuz