Autor |
Beitrag |
Smartie
      
Beiträge: 205
|
Verfasst: Mo 20.06.05 10:40
Hallo,
ich habe mein Programmchen um eine kleine Prozeur erweitert, welche meinen Warnings, die in eine Logdatei geschrieben werden, auch evtl. auftretende Warnings hinzufügt.
Es funktioniert auch einwandfrei, nur brignt er ide Fehlermeldung "External Exception 80000001", und ich hab keine Ahnung warum, bzw. was dsiese Überhaupt aussagt (Die Delphi-Hilfe kontne mir da auch nicht helfen".
Weiß einer von Euch was da los ist?
Lieben Gruß und Danke
Smartie
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 20.06.05 11:17
Externe Exceptions sind Windows-Fehlercodes. Die stehen im PSDK erklärt. Ich guck mal, ob ich gleich was finde ...
Sorry, nicht gleich gefunden ... WinError.h war zu lang ...
winerror.h 16907:
| { ... } #define E_NOTIMPL _HRESULT_TYPEDEF_(0x80000001L) |
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Smartie 
      
Beiträge: 205
|
Verfasst: Mo 20.06.05 12:47
Hm,... und was kann ich da jetzt machen? Ic hweiß echt nimemr weiter. Es ist keine Lebensnotwendige Funktion, aber sie soltle schon drin sein. Kann ich das irgendwie abfangen?
Lieben Gruß und Danke
Smartie
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 20.06.05 13:39
Kannst Du mal die Routine senden, die die Exception verursacht?
BTW: Nutzt Du darin zufällig ActiveX\COM\DCOM? Der Fehlercode ist eine ActiveX-Warning.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Smartie 
      
Beiträge: 205
|
Verfasst: Mi 22.06.05 07:19
Also, ich sende hier mal das Codestück, bei welchem , wenn ich es ausführe, die Exception kommt.
Und ja, ich nutze COM,aber bisher lief alles kla,r und nur weil ich plötzlich meine Warnings mit reinnehme, meckert er.
Also hier die Komponennte:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| procedure Ziel_Warning; var sepi : String; begin try sepi := copy(Ziel_VarArr[z],1,3); if upperCase(sepi) = 'NIX' then begin Ziel_WarningArr[z] := 'Kein Zielspeicher in Zeile ' + InttoStr(z) + ' definiert.'; Warn_Bool01 := true; end else begin Ziel_WarningArr[z] := ''; end; finally ; end;
end; |
Herzlichen Dank und lieben Gruß
Smartie
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mi 22.06.05 13:13
Auf Anhieb seh ich darin nix, was irgendwie Fehler verursachen könnte.
Kannst Du rein der Vollständigkeit halber mal noch die Deklarationen der einzelnen Variablen ergänzen?
Wenn dabei aber keine COM-Interfaces drin sind, sollte aber nix passieren.
BTW: Ist alles assigned und in-range?
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Smartie 
      
Beiträge: 205
|
Verfasst: Mi 22.06.05 13:35
Ok, ich hab die ursaceh, und auch beseitigt.
Ich habe statt diese Prozedur in die Schleife zu donnern, diese da raus genommen, und ne eigene schleife machen lassen.
vorher sah es halt ungefähr so aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure tudat; begin for z := 1 to laenge do begin Ziel_VarArr[z] := 'blah blubb' Ziel_Warning; end; end; |
und jetzt rufe ich Ziel_Warning; erst nach der prozedur "tudat" auf, und sie sieht entsprechend so aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure Ziel_Warning; var sepi : String; f : integer; begin for f := 1 to (L_INI_Array-1) DO begin try sepi := copy(Ziel_VarArr[f],1,3); if upperCase(sepi) = 'NIX' then begin Ziel_WarningArr[f] := 'Kein Zielspeicher in Zeile ' + InttoStr(z) + ' definiert.'; Warn_Bool01 := true; end else begin Ziel_WarningArr[f] := ''; end; finally ; end; end;
end; |
Wieder was gelernt *g*
Herzlichen Dank,
Smartie
|
|
|