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 Char, oder eher ein Zeiger auf ein Char-Array, also ein PChar In Bezug auf Delphi 2009 und Neuer, sollte man statt PChar, eher ein PAnsiChar verwenden. Also Aufrufkonvention würde ich auf stdcall tippen, oder eventuell cdecl, jenachdem von wo dieser Code stammt. ... = 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:18 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