Einzelnen Beitrag anzeigen

s-off

Registriert seit: 20. Jan 2010
89 Beiträge
 
Delphi 2010 Professional
 
#9

AW: Weitergabe eines Strings über Pointer funktioniert nicht - manchmal...

  Alt 29. Mai 2021, 20:26
Hi Himitsu,
Zitat:
ich habe mich lange Zeit nicht mehr mit Delphi beschäftigt und stehe nun vor einem Problem
So lange, dass dein Compiler damals noch ANSI war (<2009), aber nun Er mit Unicode arbeitet (2009+) und dein Code durch so Dinge wie String/PChar/... nun nicht mehr das Selbe macht?
Ganz genau das ist das Problem

Zitat:
CoTaskMemAlloc((Length(FOutputStreamInt.DataString) + 1));
Irgendwie sieht das eher nach ANSI aus, anstatt nach Unicode.
Ich bin so lange raus und es fällt mir sehr schwer, mich in diese alten Strukturen reinzudenken
Gib mir doch mal einen Anschubs, wie das nun mit Unicode funktioniert.


Und warum seh ich irgendwie nirgendwo etwas von BSTR/WideString?
Weil ich nur einige Stellen des Delphi-Codes gepostet habe
Wie gesagt: es geht ausschließlich um den Teil innerhalb der Delphi-DLL.
In C# habe ich das schon mit BSTR deklariert ([MarshalAs(UnmanagedType.BStr)]) und die aufgerufene Routine in der Delphi-Dll verwendet natürlich WideString.
Das schrieb ich ja auch in meinem initialen Beitrag
Zitat:
Ich muss aus C# eine Delphi-DLL mit Parametern (BSTR -> WideString) aufrufen, in der DLL ein PDF erzeugen und dieses base64-decodiert wieder zurückgeben.
**

Achte darauf, das du auch einen Unicode-String in Form von PWideChars zurückgibst
Ist in Delphi 10.1 PChar nicht automatisch PWideChar?

Schaue ich mir mal an - besten Dank.
Edit: Ahhhh - wie kann man das auf Englisch umstellen? Da bekommt man ja die Krise bei dieser Übersetzung.

Wenn in C# ein BSTR, warum dann in Delphi ein PWideChar, anstatt eines WideString?
Mache ich ja (siehe oben)

Die Delphi-DLL wird überarbeitet?
Wozu dann noch ein Wrapper dazwischen, anstatt direkt?
Was meinst Du mit Wrapper?
Ich habe einen Webservice, der in C# geschrieben ist.
Dieser soll halt das, was die Delphi-DLL an PDF-Stream erzeugt, an den Caller zurückgeben.
Das ist der ganze Zauber.
Gruß
s-off

Geändert von s-off (29. Mai 2021 um 20:28 Uhr)
  Mit Zitat antworten Zitat