AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm startet nicht nicht

Ein Thema von HomerGER · begonnen am 17. Mär 2004 · letzter Beitrag vom 24. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#1

Programm startet nicht nicht

  Alt 17. Mär 2004, 12:39
Hallo ich hab ein programm geschrieben
hier anzuschauen
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
Angehängte Grafiken
Dateityp: bmp homer1.bmp (57,4 KB, 59x aufgerufen)
Dateityp: bmp homer0.bmp (215,1 KB, 45x aufgerufen)
Dateityp: bmp homer.bmp (669,8 KB, 38x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Programm startet nicht nicht

  Alt 17. Mär 2004, 13:42
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...
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#3

Re: Programm startet nicht nicht

  Alt 17. Mär 2004, 13:49
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:
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
Rubrik Nützliches: http://help.madshi.net/madExcept.htm
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#4

Re: Programm startet nicht nicht

  Alt 17. Mär 2004, 21:36
@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 ?
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#5

Re: Programm startet nicht nicht

  Alt 17. Mär 2004, 22:07
Zitat von HomerGER:
kannst du genauer werden?
Mein Beitrag bezog sich auf die Fehlermeldung 'Runtime error 216 at 00403A02'. Wenn der Fehler bei der Demo-Version auftrat, die ich heute heruntergeladen habe, dann wurde in TObject.Free() versucht TObject.FreeInstance() aufzurufen, obwohl Self (eax) kein TObject (mehr) war.
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.
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#6

Re: Programm startet nicht nicht

  Alt 17. Mär 2004, 22:15
@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
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#7

Re: Programm startet nicht nicht

  Alt 17. Mär 2004, 22:24
Zitat von HomerGER:
der fehler "Fehler senden" kommt vorher - also in den augenblick wo man das programm start
Möglicherweise ein Problem in einem initialization-Abschnitt einer Unit/Komponente...
(von einem Fehler im RTL-Init-Code gehe ich erstmal nicht aus, obwohl es nicht ausgeschlossen ist)
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#8

Re: Programm startet nicht nicht

  Alt 17. Mär 2004, 23:28
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
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#9

Re: Programm startet nicht nicht

  Alt 18. Mär 2004, 04:28
Zitat von HomerGER:
kann ich das irgendwie überprüfen?
Ich kann Dir nur madExcept empfehlen (wird unmittelbar nach System/SysInit/SysUtils initialisiert - sodass eine reale Chance besteht, an einen vernünftigen Call-Stack zu kommen).
Warum es nur bei Intel-Prozessoren auftritt, ist eine gute Frage... (synchrones Multithreading durch HTT?)
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#10

Re: Programm startet nicht nicht

  Alt 18. Mär 2004, 10:05
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 ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz