![]() |
Delphi-Version: 5
Out in C++ Klasse - Wie übersetzen?
Hi,
Ich habe eine Frage zur Übersetzung von C++ nach Pascal. Ich habe eine externe Klasse in C++, die eine Funktion enthält, die wie folgt aussieht:
Code:
Meine Frage wäre jetzt wie ich die Funktion in Pascal deklariere, da out ein Delphi Keyword ist und mit dem "..." als Parameter bin mit meinem Latein auch am Ende.
//...
void Out(const char *szFormat, ...); //... |
AW: Out in C++ Klasse - Wie übersetzen?
void = kein Typ, also kein Result und somit eine Prozedur
Da OUT in Delphi ein reserviertes Wort ist, mußt du dieses umbenennen. char * = Zeiger auf ein ![]() In Bezug auf Delphi 2009 und Neuer, sollte man statt PChar, eher ein PAnsiChar verwenden. Also Aufrufkonvention würde ich auf ![]() ![]() ... = es folgen weitere Parameter in Delphi läßt sich sowas dynamisches aber nicht geklarieren. (jedenfalls nicht auf diese Art)
Delphi-Quellcode:
procedure Output(szFormat: PChar; ...); stdcall;
|
AW: Out in C++ Klasse - Wie übersetzen?
Danke aber ich dachte das bei einer externen Klasse die Namen der Funktionen gleich sein müssen!
|
AW: Out in C++ Klasse - Wie übersetzen?
Also ist kann das ohne Probleme erstellen...
Delphi-Quellcode:
Auch wenn das Out farbig hervorgehoben wird, so ist der Kontext korrekt. Ich verwende Delphi 7.
procedure Out(const szFormat:PChar);
begin end; PS: Selbst eine DLL ist so ohne Probleme möglich. Geht das mit Delphi 2010 nicht mehr? (Kann es gerade nicht ausprobieren) |
AW: Out in C++ Klasse - Wie übersetzen?
Man kann beim Import ja einen anderen Namen angeben, als man nutzt.
Somit wäre es kein Poblem, intern einen anderen Namen zu verwenden. |
AW: Out in C++ Klasse - Wie übersetzen?
Ok vielen Dank ich habe aber noch eine ähnliche Frage. Wie würdet ihr folgendes übersetzen:
Code:
Mein Vorschlag wäre folgender bin mir aber nicht sicher wegen interface und Begin und End.
interface ISpr
{ virtual INT Begin(DWORD dMode=0)=0; virtual INT End()=0; };
Delphi-Quellcode:
// edit: @mirage228 Danke für den Tipp mit &.
type
ISpr = interface function &Begin(dMode: DWORD = 0): Integer; cdecl; function &End(): Integer; cdecl; end; |
AW: Out in C++ Klasse - Wie übersetzen?
Zitat:
Delphi-Quellcode:
var
&begin: Integer; &out: string; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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