AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C-Header Übersetzung

Ein Thema von DeddyH · begonnen am 11. Sep 2019 · letzter Beitrag vom 11. Sep 2019
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#1

C-Header Übersetzung

  Alt 11. Sep 2019, 08:14
Ich habe hier eine C-DLL, für die ich einen Wrapper schreiben muss. Im Großen und Ganzen funktioniert das auch recht gut, aber bei bestimmten Funktionen bekomme ich keine sinnvollen Daten zurück. Es gibt in der DLL teilweise folgende Vorgehensweise: man ruft eine Funktion auf, die einen bestimmten Speicherblock reserviert und den Zeiger darauf zurückgibt. Diesen Zeiger übergibt man dann in anderen Funktionen, um bestimmte Informationen zu erhalten. Anschließend gibt man den Speicher wieder frei, indem man eine dafür bestimmte Funktion aufruft. Die Definitionen sehen so aus:
Code:
Buffer* getBuffer()
void freeBuffer(Buffer *buffer)
void getBufferInfo(const Buffer* buffer, const unsigned char** Info, uint32_t* infoLength)
So wie ich das verstehe handelt es sich bei Info um einen Zeiger auf einen Zeiger auf ein Ansi-Zeichen. Meine Übersetzung bislang (Aufrufkonvention ist durchgängig cdecl):
Delphi-Quellcode:
function getBuffer: Pointer;
procedure freeBuffer(buffer: Pointer);
procedure getBufferInfo(const buffer: Pointer; out Info: PAnsiChar; out infoLength: UINT32);
Ich habe auch schon testhalber PAnsiChar durch PByte ersetzt und dann wild herumgecastet, Streams eingesetzt etc., immer mit dem selben Endergebnis (teilweise nicht druckbare Zeichen im String, der eigentlich einen Base64-kodierten Hash enthalten soll).

Was mache ich falsch?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
 


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 21:22 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 by Thomas Breitkreuz