![]() |
TCHAR* aus C-Dll
Ich denke, dass es das Problem schon mehrmals gab, aber ich find einfach keine Lösung.
Ich habe eine API-Function aus C, die folgendermaßen aussieht:
Code:
Meine Umstzung in Delphi würde jetzt folgendermaßen aussehen:
BOOL __declspec(dllexport) _stdcall TBApiGetDriverVersion(TCHAR* aVersion);
Delphi-Quellcode:
Nur was mach ich jetzt weiter. Eigentlich müsste ich jetzt den Parameter pVersion mit einer entsprechenden Länge (255 Zeichen) initialisieren und dann erst die Funktion aufrufen. Die Funktion schreibt dann die entsprechende Treiber-Version in die Variable.
TTBApiGetDriverVersion = function (pVersion: PAnsiChar): Boolean; stdcall;
Nur hab ich keine Ahnung, wie ich einen PAnsiChar so initialisiere, dass er genau 255 Zeichen aufnimmt. Ich muss auch zugeben, dass ich in Delphi nicht mehr all zu fit bin. Ist schon eine Weile her seit ich da was gemacht habe und ich denke mir, dass es wohl ganz einfach sein müsste. Nur der Ansatz fehlt mir. ich hoffe, dass mir jemand helfen kann. |
Re: TCHAR* aus C-Dll
Eigentlich müsste es reichen, wenn du dem PAnsiChar eine 255-Zeichen lange Zeichenkette zuweist, z.B. aus nul-Zeichen (#0).
Sicher bin ich mir jetzt aber auch nicht ganz. |
Re: TCHAR* aus C-Dll
ok. Hat sich erledigt.
Delphi-Quellcode:
Manchmal sitzt man einfach auf dem Schlauch.
var
driverVersion: AnsiString; begin SetLength(driverVersion, 255); TBApiGetDriverVersion(PAnsiChar(driverVersion)); end; Aber dennoch danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01: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-2025 by Thomas Breitkreuz