Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Standalone Exe vs. IDE+F9 (https://www.delphipraxis.net/203201-standalone-exe-vs-ide-f9.html)

ISMIRSCHLECHT 23. Jan 2020 09:49

Standalone Exe vs. IDE+F9
 
Hallo,

hier gleich das nächste "Feature" von Delphi 10.
Ich habe ein Programm , welches zwecks Zusammenarbeit mit einer C - dll diverse Buffer reservieren muß.
Starte ich das Programm aus der IDE, u.a. um zu debuggen, knallts, die Bufferlänge liegt bei ca 2^64, klar daß es dann abstürzt.
Aber wer beschreibt mein Erstaunen, als ich zufällig die Exe standalone startete und alles fubnktionierte !
Natürlich habe ich sogleich eine Release-Ausgabe kompiliert und aus der IDE zu starten versucht - rumms, krach...
Ist das jemandem schon mal passiert ?
Ist das ein Bug oder ein Feature, muß man in den Tiefen der Projekteigenschaften das Häkchen "Debugger bitte richtig rechnen" anhaken ?


Gruss
ism :shock:

hoika 23. Jan 2020 10:05

AW: Standalone Exe vs. IDE+F9
 
Hallo,
Zitat:

und alles fubnktionierte !
Definiere das mal genau.

Funktioniert das Programm komplett? Klappt also das Zusammenspiel mit der Dll?
Oder kommt bloss keine Fehlermeldung?


Ich denke, es gibt schon einen Unterschied zwischen
1. Starte Prozess separat (Exe ohne Debugger)
2. Starte Prozess als SubProzess mit Debugger-Einfluss.

Der schöne Günther 23. Jan 2020 10:36

AW: Standalone Exe vs. IDE+F9
 
Interessant wäre auch ob das auch auftritt wenn du deine Anwendung aus der IDE heraus, aber ohne Debugger startest. Vielleicht liegt es an Dingen wie übergebenen Umgebungsvariablen?

Michael II 23. Jan 2020 11:55

AW: Standalone Exe vs. IDE+F9
 
Hast du auch dies versucht: Projekt > Optionen > Delphi Compiler > MSIBuild extern auf TRUE gesetzt?

Und wenn du in der IDE "wie gewohnt" debuggen willst, möchtest du eventuell auch noch Delphi Compiler > Linken > Mit externen Debug Symbolen auf TRUE setzen.

Bernhard Geyer 23. Jan 2020 12:34

AW: Standalone Exe vs. IDE+F9
 
Speicherfehler müssen nicht immer zu crashes führen.
Je nachdem wohin zufälligerweise etwas zeigt kracht es oder auch nicht.
Und es ist sehr wahrscheinlich bei dir das außerhalb der IDE zufälligerweise eine Speicherbereich überschrieben wird der (nicht gleich) andersweitig benutzt wird.

ISMIRSCHLECHT 23. Jan 2020 13:50

AW: Standalone Exe vs. IDE+F9
 
Hallo,

also:
1. Das Programm macht alles richtig .
2. Wenn ich mit Shift-Ctrl-F9 sarte funktioniert es auch

Was das Programm macht wäre zu umständlich zu beschreiben, in typischer C-Manier (Manie) werden Bytefelder beschrieben.


ism

Bernhard Geyer 23. Jan 2020 16:15

AW: Standalone Exe vs. IDE+F9
 
Jetzt sehe ich erst -> 2^64 Bufferlänge

Was ist das für ein Komisches Konstrukt?
Gibts schon 128 Bit Compiler?

Was wollte der C-Entwickler damit erreichen?

hoika 23. Jan 2020 16:31

AW: Standalone Exe vs. IDE+F9
 
Hallo,
klammere doch erst mal den c-Ansprech-Code aus.
Versuch also, dass Programm erst mal so in der IDE zum Laufen zu bringen.

ISMIRSCHLECHT 27. Jan 2020 10:12

AW: Standalone Exe vs. IDE+F9
 
Hallo,

natürlich läuft das Programm in der IDE, wenn ich den C-Ansprechcode auskommentiere.
Aber der soll ja in einer DLL die Arbeit machen.
Es geht um die WORM-DLL für die Swissbitt-TSE.

Code auszugswise :

Delphi-Quellcode:
Type TUnChar =  array of Byte;

     PUnChar = ^TUnchar;

Var
  sernu : PUnChar ;

new(sernu);
setlength(sernu^ , 512) ;
// vor dem Aufruf ist die Länge von sernu^  noch 512 
worm_info_tseSerialNumber(definer.WINF,
                          sernu ,
                          serlen);

// NACH dem Aufrum ist die Länge des Feldes plötzlich Null
Es sieht also so aus, als ob diese Dussel-DLL meinen Delphispeicher freigibt, so daß ich ihn nicht mehr ansprechen kann.
Hoch lebe die intersprachliche Zusammenarbeit
ism

Luckie 27. Jan 2020 10:32

AW: Standalone Exe vs. IDE+F9
 
Ich bin mir ziemlich sicher, es liegt nicht an der DLL. Denn ich glaube kaum, dass du der Erste bist, der sie benutzt. Der Fehler wäre bestimmt beim Testen und bei anderen Nutzern aufgefallen.


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

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