![]() |
.Net: Datenaustausch über Widestrings
Hi
Ich habe hier eine Delphi-Anwendung, die Daten aus einem COM-Objekt erhält. Das COM-Objekt ist in Delphi geschrieben und verwendet WideStrings, auch im Interface (BSTR) Ein dot.NET Programm greift ebenfalls auf das COM-Objekt zu und liest und schreibt Strings. So, klappt. Nun sollen auch Binärdaten, also Bitmaps, PDFs usw. über diese Schnittstelle gelesen und geschrieben werden. Ich habe es derzeit mit einem Base64-kodierten String gelöst, was auch funktioniert, aber -glaube ich- nicht direkt speicherplatzsparend ist, denn Base64 = 8-bit, aber WideString = 16 bit pro Zeichen. Da muss sich doch was machen lassen... Gibt es eine 'best practice' für sowas? Sollte das COM-Objekt erweitert werden, um speziell Binärinformationen zu lesen und zu speichern? Wenn ja, wie? |
AW: .Net: Datenaustausch über Widestrings
Schick die Daten doch roh rüber. Und sag dem Empfänger vorher um was es sich handelt. Dann empfängst du die Daten, schreibst sie einen Fielstream (wenn sie gespeichert werden sollen) und hängst dann je nach Typ die passende Dateiendung dran. Oder mache ich einen Denkfehler und stelle mir das zu einfach vor?
|
AW: .Net: Datenaustausch über Widestrings
Du könntest einen Pointer (->
![]() ![]() Bernhard |
AW: .Net: Datenaustausch über Widestrings
Oh, da hab ich mich blöd ausgedrückt.
Beim COM-Objekt handelt es sich um eine Art Datenbank, aber nur um 'eine Art'. So eine Mischung aus Registry und DB. Nur mit WideStrings. Und nun soll das Konzept erweitert werden. Wie gesagt, mit Base64 klappt es ja. Auf C#-Seite: Bitmap=>Stream=>Byte-Array=>Base64-String=>Widestring Auf Delphi-Seite WideString=>Base64-String=>StringStream=>Bitmap Bisserl viel Redundanz und Konvertierungsgehoppel. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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-2025 by Thomas Breitkreuz