Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prism .NET Anwendung stürzt ab (https://www.delphipraxis.net/142341-net-anwendung-stuerzt-ab.html)

paperboy 26. Okt 2009 18:26

Re: .NET Anwendung stürzt ab
 
aber auf meinem rechner rennt es ja... unter win 7... prinzipiell die gleiche konfiguration wie mein laptop nur das auf dem das codegear rad studio fehlt...
dachte es liegt vllt an fehlenden delphi komponenten... borland.vcl ist in der uses klausel und gibt wie ich grad gesehen hab eine warnung das sie
platformspezifisch ist... das hat damit doch aber eigentlich nichts zu tun oder?

@apollonius
ich bin noch recht unbeholfener hobby delphianer und hab keine ahnung wie ich sowas angehen muss...
das einzige was mir zu exceptions und deren abfangen geläufig ist try except...
und ich schätze diese aussage lässt dich jetzt die stirn runzeln und die minute verfluchen in der
du beschlossen hast mir zu helfen :mrgreen: aber könntest du vllt eine kleine erklärung dazu schreiben?

mkinzler 26. Okt 2009 18:27

Re: .NET Anwendung stürzt ab
 
Nochmal die Frage, bist du sicher, das du eine .Net Anwendung erstellt hast?

paperboy 26. Okt 2009 18:31

Re: .NET Anwendung stürzt ab
 
jau... da bin ich ganz sicher :)
ich arbeite nämlich mit der System.Security.Cryptography klassenbibliothek...

hab grad einfach nochmal ein leeres .net projekt compiliert und auf dem zweitrechner versucht und das läuft...
mir ist auch aufgefallen das das leere projekt knapp 500kb auf die waage bringt...
das scheint mir doch suspekt :) versuch mal den code nochmal in ein neues projekt einzufügen

Apollonius 26. Okt 2009 18:37

Re: .NET Anwendung stürzt ab
 
Okay, machen wir's noch simpler. In die allererste Methode, die vom Programm aufgerufen wird (ich weiß nicht genau, wie das in Prism aussieht...) schreibst du folgendes:
Delphi-Quellcode:
try
  //von Prism generierter Code... ich vermute mal u.A.
  Application.Run(new XYZForm);
except
  on E: Exception do
  begin
    MessageBox.Show(E.ToString());
    if E.InnerException <> nil then
      MessageBox.Show(E.InnerException.ToString());
  end;
end;
Und dann schaust du mal, was auf dem anderen Rechner dabei rauskommt.

paperboy 26. Okt 2009 18:39

Re: .NET Anwendung stürzt ab
 
ahhh... alles klar... das werd ich gleich mal versuchen...da einen exception handler einzubauen wär ich nie drauf gekommen :)

nein es bleibt leider bei dem windows fehler... also kommt er nicht mal bis zu dem handler...
hmm...

paperboy 26. Okt 2009 19:19

Re: .NET Anwendung stürzt ab
 
nungut... hilft ja wohl alles nix..
ein projekt nur mit form lässt sich starten... auch mit der gleichen uses einträgen...
da ich ja nicht mal bis zu dem exception handler komme muss es wohl ein etwas schwerwiegenderes problem sein...
danke erstmal soweit für eure hilfe... ich werd mal noch ein bissel rumprobieren..

aber falls noch einer ne idee hat immer her damit...

mkinzler 26. Okt 2009 19:21

Re: .NET Anwendung stürzt ab
 
Zeig mal etwas Code

Apollonius 26. Okt 2009 19:32

Re: .NET Anwendung stürzt ab
 
Hast du irgendwelche Klassenkonstruktoren? Baue try-except-Blöcke um alle. Packe alle Initialisierungen von Klassenvariablen in den Klassenkonstruktor.

paperboy 26. Okt 2009 19:48

Re: .NET Anwendung stürzt ab
 
Delphi-Quellcode:
procedure CalculateHash(ToHash: String; HashMethode: Integer);
var
datei : FileStream;
Hash : HashAlgorithm;
input, puffer : Array of Byte;
i : Integer;
begin
case Form1.PageControl1.TabIndex of
0:
begin
  datei := FileStream.Create(ToHash,FileMode.Open, FileAccess.Read,FileShare.None);
  SetLength(input, datei.Length);
  datei.Read(input,0, datei.Length);
  datei.Free;
end;
1:
begin
  i := 1;
  SetLength(input, Length(ToHash));
  while i <= length(ToHash) do
  begin
    input[i - 1] := Ord(ToHash[i]);
    inc(i)
  end;
end;
end;
case HashMethode of
0:
begin
  Hash := MD5CryptoServiceProvider.Create;
  puffer := HASH.ComputeHash(input);
end;
i := 0;
while i < length(puffer) do
begin
  HASHString := HASHString + puffer[i].ToString('x2');
  inc(i);
end;
Form1.Memo1.Text := HASHString.ToUpper;
der rest ist nur der funktionsaufruf und das auswählen einer datei über einen opendialog...
denke aber nicht das es am code liegt... der läuft ja...
wenn ich eine datei ohne alles bis auf das was delphi mir vorgibt, sprich das fenster, erstelle
dann läuft die exe... sie ist dann aber auch viel größer (1,4mb :shock:)... in dem moment
in dem ich einen button auf die form klatsche schrumpft die größe auf 16kb und die exe startet nur noch bei mir..
wenn dann all mein code geschrieben und die elemente auf dem fenster sind ist die exe 160kb groß und
ebenfalls nur auf dem rechner lauffähig auf dem sie kompiliert wurde... da frag ich mich doch was da verloren geht..

paperboy 26. Okt 2009 20:29

Re: .NET Anwendung stürzt ab
 
so... ich habs zum laufen gebracht...
ich hab mal verglichen was in dem project vorhanden war "Projekt -> Aus dem Projekt Entfernen"
und hab gesehen das die Borland.Delphi.dll, die Borland.Vcl.dll und die Borland,VclRtl.dll erst ins projekt kommen nachdem ich einen button auf das fenster lege... hab kurzerhand die drei assemblys entfernt obwohl ich mir davon nicht viel versprochen habe und die exe ist auf 1,8mb angestiegen und läuft jetzt auch auf meinem 2. system...
wäre natürlich toll zu wissen warum das so ist :)
und vor allem wie ich diese blöde exe die eigentich nicht viel macht wieder geschrumpft bekomme ohne das die funktionalität wieder abnimmt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 Uhr.
Seite 2 von 3     12 3      

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