AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi nicht fähig COM zu verwalten?
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi nicht fähig COM zu verwalten?

Ein Thema von EWeiss · begonnen am 1. Aug 2012 · letzter Beitrag vom 2. Aug 2012
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 16:45
Ich kann machen was ich will.
Wenn ich während des Rendern einer Visualisierung ein mit Win32API, Menü aufrufe
um das nächste Preset zu starten meldet mir der Compiler einen Schweren Ausnahme Fehler.

Das passiert aber nur unter NonVCL

Addiere ich die Presets in ein TStringGrid also beim Initialisieren des Plugin .. Einmalig
und ändere dann die Presets aus dem StringGrid gibt es keinerlei problem.

Wie kann ich den Fehler der "NUR" in der Ide nicht aber
als compilierte Exe auftritt abfangen?

Die selbe Library geschrieben in Delphi in verwendung mit folgenden Sprachen
VB_NET, C#_NET, VB6, PowerBAsic, C++ treten diese Probleme nicht auf.

Debug: Auszug
Zitat:
Thread-Ende: Thread-ID: 4320. Prozess Soundmachine.exe (220)
Modul laden: AlbumArt3D.DLL. Ohne Debug-Infos. Basisadresse: $0F300000. Prozess Soundmachine.exe (220)
Modul laden: d3dx9_28.dll. Ohne Debug-Infos. Basisadresse: $04900000. Prozess Soundmachine.exe (220)
Modul laden: d3d9.dll. Ohne Debug-Infos. Basisadresse: $6B2E0000. Prozess Soundmachine.exe (220)
Modul laden: d3d8thk.dll. Ohne Debug-Infos. Basisadresse: $6BEE0000. Prozess Soundmachine.exe (220)
Modul laden: Tolerance.DLL. Ohne Debug-Infos. Basisadresse: $681F0000. Prozess Soundmachine.exe (220)
Modul laden: CRYPTSP.dll. Ohne Debug-Infos. Basisadresse: $73F20000. Prozess Soundmachine.exe (220)
Modul laden: RSAENH.dll. Ohne Debug-Infos. Basisadresse: $73E30000. Prozess Soundmachine.exe (220)
Modul laden: RpcRtRemote.dll. Ohne Debug-Infos. Basisadresse: $73E20000. Prozess Soundmachine.exe (220)
Thread-Start: Thread-ID: 2896. Prozess Soundmachine.exe (220)
Modul laden: Bubbles.DLL. Ohne Debug-Infos. Basisadresse: $04D00000. Prozess Soundmachine.exe (220)
Modul laden: d3dx9_29.dll. Ohne Debug-Infos. Basisadresse: $04EF0000. Prozess Soundmachine.exe (220)
Modul laden: clarity.DLL. Ohne Debug-Infos. Basisadresse: $05340000. Prozess Soundmachine.exe (220)
Modul laden: d3dx9_31.dll. Ohne Debug-Infos. Basisadresse: $054C0000. Prozess Soundmachine.exe (220)
Modul laden: MEDIAPLAYER_10.DLL. Ohne Debug-Infos. Basisadresse: $05250000. Prozess Soundmachine.exe (220)
Modul laden: d3d8.dll. Ohne Debug-Infos. Basisadresse: $680E0000. Prozess Soundmachine.exe (220)
Modul laden: MEDIAPLAYER_9.DLL. Ohne Debug-Infos. Basisadresse: $05730000. Prozess Soundmachine.exe (220)
Modul laden: metalArcs.DLL. Ohne Debug-Infos. Basisadresse: $05CB0000. Prozess Soundmachine.exe (220)
Modul laden: PULSING COLORS.DLL. Ohne Debug-Infos. Basisadresse: $04DA0000. Prozess Soundmachine.exe (220)
Modul laden: RibbonsVis.DLL. Ohne Debug-Infos. Basisadresse: $05B00000. Prozess Soundmachine.exe (220)
Modul laden: T3.DLL. Ohne Debug-Infos. Basisadresse: $05E50000. Prozess Soundmachine.exe (220)
Modul laden: SHFOLDER.dll. Ohne Debug-Infos. Basisadresse: $68D70000. Prozess Soundmachine.exe (220)
Modul laden: ThreeDBars.DLL. Ohne Debug-Infos. Basisadresse: $05B30000. Prozess Soundmachine.exe (220)
Modul laden: TRILOGY I.DLL. Ohne Debug-Infos. Basisadresse: $05F20000. Prozess Soundmachine.exe (220)
Modul laden: TRILOGY II.DLL. Ohne Debug-Infos. Basisadresse: $05F50000. Prozess Soundmachine.exe (220)
Modul laden: TRILOGY III.DLL. Ohne Debug-Infos. Basisadresse: $05F80000. Prozess Soundmachine.exe (220)
Modul laden: upCuber.DLL. Ohne Debug-Infos. Basisadresse: $06C70000. Prozess Soundmachine.exe (220)
Modul laden: VISUALIZATION-ONE.DLL. Ohne Debug-Infos. Basisadresse: $05FB0000. Prozess Soundmachine.exe (220)
Thread-Start: Thread-ID: 4272. Prozess Soundmachine.exe (220)
Thread-Start: Thread-ID: 3240. Prozess Soundmachine.exe (220)
Modul laden: ole32.dll. Ohne Debug-Infos. Basisadresse: $072A0000. Prozess Soundmachine.exe (220)
Modul entladen: ole32.dll. Prozess Soundmachine.exe (220)
Modul laden: dsdmo.dll. Ohne Debug-Infos. Basisadresse: $67E70000. Prozess Soundmachine.exe (220)
Modul laden: msdmo.dll. Ohne Debug-Infos. Basisadresse: $6BBF0000. Prozess Soundmachine.exe (220)
Thread-Start: Thread-ID: 4432. Prozess Soundmachine.exe (220)
Thread-Ende: Thread-ID: 4272. Prozess Soundmachine.exe (220)
Debug-Ausgabe: HEAP[Soundmachine.exe]: Prozess Soundmachine.exe (220)
Debug-Ausgabe:
HEAP: Free Heap block 68c0040 modified at 68cca9c after it was freed
Bei Free Heap block hängt er.
Läßt sich aber danach weiter.. fortführen.
Nicht zu fixen ?

EDIT:
Das problem mit dem Rendern konnte ich abfangen in dem ich post anstelle von SendMessage verwende.

gruss

Geändert von EWeiss ( 1. Aug 2012 um 17:46 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 20:18
Hallo,

Zitat:
Wie kann ich den Fehler der "NUR" in der Ide nicht aber
als compilierte Exe auftritt abfangen?
Hm,
verstanden habe ich die Frage nicht, einfach zu wenig Informationen.

Aber wenn der Fehler in der IDE auftritt und nivht in der Exe,
liegt es vielleicht dran, dass du ihn in der Exe per

try except

abfängst?


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.587 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 20:45
Zeig am besten einfach einmal einen Screenshot der Meldung in Delphi und die entsprechende Stelle des Quelltextes.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 22:08
Zeig am besten einfach einmal einen Screenshot der Meldung in Delphi und die entsprechende Stelle des Quelltextes.
Habe ich doch
Zitat:
Debug-Ausgabe: HEAP[Soundmachine.exe]: Prozess Soundmachine.exe (220)
Debug-Ausgabe:
HEAP: Free Heap block 68c0040 modified at 68cca9c after it was freed
Scheinbar produziert msdmo.dll diesen Fehler wenn das so ist werde ich ihn wohl nicht beheben können.
Zitat:
und die entsprechende Stelle des Quelltextes
Die gibt es nicht, geht nur das AMS Fenster auf das war's dann.

Das problem mit dem Rendern habe ich gelößt durch PostMessage..
Anscheinend vertragen die WMP Plugins keinerlei Unterbrechung im Render Thread

Zitat:
Aber wenn der Fehler in der IDE auftritt und nivht in der Exe,
liegt es vielleicht dran, dass du ihn in der Exe per

try except

abfängst?
Nein fange ich nicht ab geht auch nicht da der RenderThread außerhalb meiner Anwendung ist.


gruss

Geändert von EWeiss ( 1. Aug 2012 um 22:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.587 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 22:37
Habe ich doch
Nein, ich meinte wie die Meldung in Delphi aussieht. Ist das wie eine Exception mit Fortsetzen, Anhalten, ...? Oder nur im Ereignislog?

Das "modified after it was freed" sieht mir ein wenig wie FastMM aus, kann es sein, dass du das drin hast und zwar so eingestellt, dass es das nur in Delphi melden soll?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 22:47
Habe ich doch
Nein, ich meinte wie die Meldung in Delphi aussieht. Ist das wie eine Exception mit Fortsetzen, Anhalten, ...? Oder nur im Ereignislog?

Das "modified after it was freed" sieht mir ein wenig wie FastMM aus, kann es sein, dass du das drin hast un zwar so eingestellt, dass es das nur in Delphi melden soll?
Es kommt keinerlei Meldung..
Die Anwendung wird angehalten dann geht das Debug(ASM) Fenster auf.
Unten im Debuger-Logfenster steht dann der Fehler mit dem Heap

Nach dem klick oben im Menü (grüner Pfeil) läuft die Anwendung ohne Fehler weiter
solange bis ich halt das nächste Preset starte.

Es kommt kein Dialog oder sonstiges.

PS:
Verwende kein FastMM weder in der DLL noch in der Anwendung.

gruss

Geändert von EWeiss ( 1. Aug 2012 um 22:49 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 23:01
Das ist vielleicht eine Exception im COM-Objekt selbst. Da der Debugger aktiv ist und er bei Exceptions anhalten soll, macht er das auch. Das macht er selbst dann, wenn die Exception im COM-Objekt selbst abgefangen wird.

Ist zumindest bei mir so und eigentlich nicht Unfähigkeit, sondern gewolltes Verhalten.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 23:09
Zitat:
Das ist vielleicht eine Exception im COM-Objekt selbst.
Selbst wenn es der Fall wäre müßte in Delphi trotzdem ein Exception geworfen werden.
Welchen Sinn macht es denn dann safecall anstelle von stdcall zu verwenden?

Hier sollte also ein HRESULT zurückgegeben werden aus dem Delphi dann sein Exception bastelt.
Aber wie gesagt da kommt nix bis auf die Meldung mit dem Heap

Geändert von EWeiss ( 1. Aug 2012 um 23:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 23:24
Zitat:
Das ist vielleicht eine Exception im COM-Objekt selbst.
Selbst wenn es der Fall wäre müßte in Delphi trotzdem ein Exception geworfen werden.
Welchen Sinn macht es denn dann safecall anstelle von stdcall zu verwenden?

Hier sollte also ein HRESULT zurückgegeben werden aus dem Delphi dann sein Exception bastelt.
Aber wie gesagt da kommt nix bis auf die Meldung mit dem Heap
Delphi kann aber auch nur eine Exception daraus basteln wenn die Entwickler der COM-Komponenten es richtig gemacht haben da das möglich ist. Und du kannst mir glauben: Hier gibt es genügend (auch von MS oder anderen großen Firmen) bei denen man bald mehr Zeit mit der Umschiffung von Fehlern der COM-KOmponenten verbringt als mit der eigentlichen Verwendung.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: Delphi nicht fähig COM zu verwalten?

  Alt 1. Aug 2012, 23:28
Zitat:
Und du kannst mir glauben:
Glaube ich dir gern ..
Ich werde dann wohl nichts anderes machen können als diesen Fehler zu ignorieren.
Bleibt mir wohl in diesen speziellen Fall nichts anderes übrig.

Dank dir!

gruss

Geändert von EWeiss ( 1. Aug 2012 um 23:30 Uhr)
  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 08:38 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