![]() |
C# Byte Array: Wie nach Delphi übersetzen?
Moin,
ich nutze eine DLL. Die Doku für die DLL hat leider nur C#-Beispiele. Wie kann ich diesen Code nach Delphi portieren?
Code:
Mir ist insbesondere nicht klar, wie Delphi die Größe von dem Byte-Array wissen soll? Oder braucht man die nicht? Danke!
byte[] btSignature = (byte[])axSTPadCapt1.SignatureSaveAsStreamEx(...);
if (btSignature == null) { /*error*/ return; } MemoryStream memoryStream = new MemoryStream(btSignature); Image image = Image.FromStream(memoryStream); |
AW: C# Byte Array: Wie nach Delphi übersetzen?
Ist das überhaupt eine DLL die du mit z.B. C++ oder Delphi benutzen kannst oder ist die für .NET?
|
AW: C# Byte Array: Wie nach Delphi übersetzen?
Dieser Schnipsel stammt ja von Seite 100 der Dokumentation
![]() Eine Seite weiter oben steht das unter der Überschrift 8.39.1 STPadCapt.ocx Hast du das OCX-Control importiert? Wenn du jetzt nur Fragezeichen in den Augen hast, bitte hier entlang: ![]() Wenn du kein OCX-Control importieren möchtest, steht auf Seite 102 etwas zur Anwendung der nativen Lösung (C/C++) mit der Funktion STSignatureSaveAsStreamEx aus der STPadLib.dll. Wenn du dir die Funktionsdefiniton nach Delphi übersetzt hast, kannst du das C++-Beispiel ja fast 1:1 in Delphi umsetzen. Hier wird der klassische Weg gegangen (allseits bekannt und beliebt von der WinApi): Erst
Code:
aufrufen um in nSize die Größe zu ermitteln, dann mit
STSignatureSaveAsStreamEx(NULL, &nSize, ...)
Code:
ein Array passender Größe erzeugen und mit
pbtImage = new BYTE[nSize];
Code:
füllen.
STSignatureSaveAsStreamEx(pbtImage, &nSize, ...)
|
AW: C# Byte Array: Wie nach Delphi übersetzen?
Zitat:
|
AW: C# Byte Array: Wie nach Delphi übersetzen?
Zitat:
In der STPadCaptLib_TLB.pas gibt es nur diese Funktion:
Code:
Da muss NULL als erster Parameter rein? Und aus nWidth kommt dann die Größe des Arrays zurück? Ich bin gerade etwas verwirrt.
function SignatureSaveAsStreamEx(nResolution: Smallint; nWidth: Integer; nHeight: Integer;
nFileType: Smallint; nPenWidth: Smallint; penColor: OLE_COLOR; nOptions: Integer): OleVariant; |
AW: C# Byte Array: Wie nach Delphi übersetzen?
Habe es nun hinbekommen:
Code:
var
Stream: TMemoryStream; Buffer: TBytes; begin Buffer := STPadCapt1.SignatureSaveAsStreamEx(300, 0, 0, SIGNO_FILE_PNG, SIGNO_PEN_VAR_WIDTH, 0, 0); Stream := TMemoryStream.Create; Stream.WriteData(Buffer, Length(Buffer)); Stream.SaveToFile('D:\test.png'); Stream.Free; |
AW: C# Byte Array: Wie nach Delphi übersetzen?
Zitat:
Wenn du das mit der TLB und OCX machst, dann wird das schon intern abgefrühstückt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 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