![]() |
Application Error 0xc0000142
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,
wir haben für unser Programm einen Server-Dienst und dafür ein kleines Konfigurationstoll geschrieben. Das Konfigurationstool macht eigentlich nicht wirklich viel mehr, als eine Konfigurations Ini-Datei zu erstellen und den Dienst zu starten bzw. zu beenden. Bei etwas über 100 Kunden funktioniert das auch alles wunderbar, aber einer bekommt die Fehlermeldung 0xc0000142 (Bild siehe Anhang) Soweit mir bekannt setzt der Kunde einen Windows-Server 2000 mit SP4 ein, der eigentlich immer auf dem aktuellsten Stand gehalten wird. Wie könnte man das Problem beheben (mal abgesehen von Neuinstallation des Rechners und anderen Rechner nehmen)? Wir haben das Programm auch schon deinstalliert und wieder neu installiert, aber der Fehler kommt weiterhin. |
Re: Application Error 0xc0000142
hmm... naja ohne mehr infos wird man da nicht viel machen können...
theoretisch wäre etwas quellcode nicht ganz übel... die meldung alleine hat so viel aussagekraft wie "es ist ein sack reis umgefallen" - man könnte vermuten dass es in china passiert ist aber vielleicht auch doch in der arktis? nobody knows :-) gruß reli |
Re: Application Error 0xc0000142
achja die brüder google helfen auch manchmal recht gut :-)
für leute mit bilderfetisch: ![]() und einmal ohne: ![]() gruß reli |
Re: Application Error 0xc0000142
Hi reli,
bei Google hab ich schon gesucht, die beiden Fehler, die du mir gelinkt hast sind die 0xc0000022 und nicht 0xc0000142, deswegen dachte ich nicht, dass das passt, werds aber mit dem Kunden mal durch spielen. So, hier n bisl Quältext, aber ehrlich gesagt denke ich nicht, dass das einen weiter bringt *g*:
Delphi-Quellcode:
procedure TFrmServerConfig.FormCreate(Sender: TObject);
begin if FileExists(GetDataPath+'System.fdb') then begin DMSystem.dbSystemZeos.Database := GetDataPath+'System.fdb'; try DMSystem.dbSystemZeos.Connect; except Application.Terminate; end; end else Application.Terminate; MPGetLanguage(); // Sprache aus System.fdb auslesen (füllt Array aSprache) MPSetLanguage(Self); //Verpasst den Komponenten die richtigen Text/Caption Propertys slPlugins := TStringList.Create; bActivated := false; sLicenseHolder := aSprache[1379]; iMaxUser := 0; end;
Delphi-Quellcode:
procedure TFrmServerConfig.FormShow(Sender: TObject);
var prgInfo: TmpllPrgInfo; bridgeone: mybridge1; tsplugin: IMPPluginInterface; sMPServerINI : string; ConfigINi : TIniFile; sDatenPfad : string; begin TForm(Sender).Left:= (Screen.Width - TForm(Sender).Width)div 2; TForm(Sender).Top:= ((Screen.Height -TForm(Sender).Height) div 2)-14; bridgeone := mybridge1.Create; mplicense := TMPLicense.Create(bridgeone, mybridge2.Create()); prginfo.prgtyp := cPrg_MPFEUER; prginfo.prglite := 0; if (bridgeone.getField4 <> '') and (StrToInt(bridgeone.getField4) > cUser_Einzel) and (StrtoInt(bridgeone.getField4) < cUser_Max) then begin prginfo.prguser := StrToInt(bridgeone.getField4); end else prginfo.prguser := cUser_3; sMPServerINI := GetDataPath+'MPServer.ini'; ConfigIni := TIniFile.Create(sMPServerINI); sDatenpfad := ConfigIni.ReadString('UNC_PATH', 'Datapath', ''); if COPY(sDatenpfad, Length(sDatenpfad), 1) <> '\' then sDatenpfad := sDatenpfad+'\'; tsplugin := MPPluginLoaderLib.LoadIt(sDatenPfad+'Plugins\'); prginfo.prgversion := cVers_30; if tsplugin <> nil then begin if tsplugin.getPluginType = pTManufacturer then begin prginfo.prgPlugin := cPlugin_plugin; slPlugins.Add(tsplugin.getPluginName+' (V '+tsplugin.getPluginVersion+')'); end else prgInfo.prgPlugin := cPlugin_no; end else prgInfo.prgPlugin := cPlugin_no; prginfo.prgAVL := false; mplicense.setProgrammVersion(prginfo); mplicense.setdefaultLicense(pDefaultLicense); btnClients.Click; btnUebersicht.Click; end;
Delphi-Quellcode:
function GetDataPath(): string;
var rRegisrty: TRegistry; begin rRegisrty := TRegistry.Create(KEY_READ); rRegisrty.RootKey := HKEY_LOCAL_MACHINE; if rRegisrty.KeyExists('SOFTWARE\MP-SOFT-4-U\' + pPrgname + '\Services') then begin rRegisrty.OpenKey('SOFTWARE\MP-SOFT-4-U\' + pPrgname + '\Services', false); Result := rRegisrty.ReadString('AppDataPath'); end else begin Result := ''; end; end;
Delphi-Quellcode:
procedure TFrmServerConfig.btnClientsClick(Sender: TObject);
type PPInAddr = ^PInAddr; var ConfigIni : TIniFile; sMPServerINI : string; WSA : TWSAData; PHEn : PHostEnt; Addr : PPInAddr; ConnectionStream: TMemoryStream; sConnectionAnswer : string; begin lblBereich.Caption := '['+TJvNavPanelButton(Sender).Caption+']'; SetScrollBox(sbClients); if not ServiceRunning(nil, PAnsiChar('MPService')) then begin lblClients.Caption := aSprache[1485]; lblAktClients.Visible := false; exit; end; MPServerConnect; GetConnections(); ConnectionThread := TConnectionThread.Create(True); with ConnectionThread do begin Priority := tpNormal; FreeOnTerminate := True; ConnectionClient := MPServerTCPClient; Resume; end; end;
Delphi-Quellcode:
Und hier noch der Thread:
procedure TFrmServerConfig.btnUebersichtClick(Sender: TObject);
begin try ConnectionThread.Suspend; except end; lblBereich.Caption := '['+btnUebersicht.Caption+']'; SetScrollBox(sbStart); if ServiceRunning(nil, PChar('MPService')) then begin lblServiceStatus.Caption := aSprache[1462]; btnServiceStatus.Caption := aSprache[1461]; pnlServerStatus.Color := $00A2D896; MPServerConnect; GetServerInformation; lblStatusLizenznehmerWert.Caption := sLicenseHolder; if bActivated then lblStatusLizenzWert.Caption := aSprache[1492]+' - '+IntToStr(iMaxUser)+' '+aSprache[772] else lblStatusLizenzWert.Caption := aSprache[1495]+' ('+IntToStr(iDemoDays)+'/30) - '+IntToStr(iMaxUser)+' '+aSprache[772] end else begin lblServiceStatus.Caption := aSprache[1463]; btnServiceStatus.Caption := aSprache[1460]; pnlServerStatus.Color := $005E5DE3; lblStatusLizenznehmerWert.Caption := ''; lblStatusLizenzWert.Caption := ''; end; lbPlugins.Items.Clear; if slPlugins.Count = 0 then lbPlugins.Items.Add(aSprache[1516]) else lbPlugins.Items := slPlugins; try ConnectionThread.Resume; except end; end;
Delphi-Quellcode:
Wenn noch was benötigt wird poste ich auch gerne die gesamte pas, aber wie schon gesagt denke ich nicht, dass das was Hilft, da es ja bei all den anderen Kunden einwandfrei funktioniert.
procedure TConnectionThread.Execute;
var sReadLine: string; begin with ConnectionClient.IOHandler do begin while Connected do begin sReadLine := ReadLn; if StringDecrypt(sReadLine) = 'ConnectionChange' then begin Synchronize(GetConnections); end; end; end; end; procedure TConnectionThread.GetConnections; begin FrmServerConfig.GetConnections; end; Ich denke eigentlich eher, dass es was auch Windows-Seite ist, hab aber im Netz bisher nur was gefunden von wegen DLL-Problem, bzw. Problem bei Scheduled Tasks oder der cdm.exe. Das alles wurde dann immer mit dem nächsten SP o.ä. gelöst, also auch nicht wirklich befriedigend. |
Re: Application Error 0xc0000142
hmmm also am code finde ich nix auffälliges... aber ich denke die meldung ansich sollte sich nicht in der "0xc0000142"-nummer unterscheiden... ich hab halt einfach mal nach dem fehler allgemein geschaut... das sieht einfach nur nach nem speicherverweis aus und vielleicht greift dien prog nur auf ne andere datei oder what ever zu...
unter welchen rechten läuft denn dein programm? vielleicht liegts daran.. hmm naja dem kunden einfach sagen "versuch das... das könnte helfen" kann vielleicht schon ausreichen. vondaher weitergeben und hoffen.. wenn es ned klappt wird sich dein kunde scho melden :-p gruß reli |
Re: Application Error 0xc0000142
Hi,
Vielleicht hilft dir ja die Lösung aus diesem Thread (etwas weiter unten): ![]() mfG mirage228 |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
|
Re: Application Error 0xc0000142
1. Das 0xCxxxxxxxxxx deutet darauf hin, dass diese Exception im Kernel geschmissen wurde. Also irgendwo in einem WinAPI Aufruf.
2. Dieser Code ist der gleiche, welcher auch bei einer STOP Condition ausgegeben wird. Dazu kenne ich einen link: ![]() 3. Der Fehler 0xC0000142 steht für "DLL Initialization Failure". Somit auch schon ein Hinweis mehr. |
Re: Application Error 0xc0000142
Danke für die Hinweise,
muss mal schauen, welche DLLs geladen werden. Ist hier für mich nur leider nicht so einfach nachzuvollziehen und immer den Kunden mit einbinden ist ja leider auch nicht so optimal. Mittlerweile hat mir auch ein anderer Kunde das Problem gemeldet. Bei ihm ging es ursprünglich und seit dem er die neuesten Microsoft Patches eingespielt hat kommt bei ihm der gleiche Fehler. Er setzt auch einen Win 2k Server mit SP4 ein. Ist euch da was bekannt, dass die bei den letzten Patches irgendwas verballert, oder was "sicherer" gemacht haben? |
Re: Application Error 0xc0000142
Hi,
ich hatte bei einigen PC's das gleiche Problem, da hatte die Neuinstallation der GraKa-Software (NVIDIA) geholfen. Nur einer blieb resistent. Dem hab ichs aber auch beigebogen, in dem ich Hardware-OpenGL abgeschaltet habe. Was aber eigentlich nicht der korrekte Lösungsansatz sein sollte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 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