AGB  ·  Datenschutz  ·  Impressum  







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

TCHAR* aus C-Dll

Ein Thema von Mossi · begonnen am 19. Mai 2010 · letzter Beitrag vom 19. Mai 2010
Antwort Antwort
Mossi

Registriert seit: 6. Feb 2004
Ort: Wenzenbach
35 Beiträge
 
Delphi 7 Enterprise
 
#1

TCHAR* aus C-Dll

  Alt 19. Mai 2010, 14:46
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:
BOOL __declspec(dllexport) _stdcall TBApiGetDriverVersion(TCHAR* aVersion);
Meine Umstzung in Delphi würde jetzt folgendermaßen aussehen:
TTBApiGetDriverVersion = function (pVersion: PAnsiChar): Boolean; stdcall; 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.

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.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#2

Re: TCHAR* aus C-Dll

  Alt 19. Mai 2010, 14:49
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.
  Mit Zitat antworten Zitat
Mossi

Registriert seit: 6. Feb 2004
Ort: Wenzenbach
35 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TCHAR* aus C-Dll

  Alt 19. Mai 2010, 15:01
ok. Hat sich erledigt.

Delphi-Quellcode:
var
  driverVersion: AnsiString;
begin
  SetLength(driverVersion, 255);
  TBApiGetDriverVersion(PAnsiChar(driverVersion));
end;
Manchmal sitzt man einfach auf dem Schlauch.

Aber dennoch danke
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz