AGB  ·  Datenschutz  ·  Impressum  







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

Out in C++ Klasse - Wie übersetzen?

Ein Thema von Yakumo500 · begonnen am 26. Dez 2010 · letzter Beitrag vom 27. Dez 2010
Antwort Antwort
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#1

Out in C++ Klasse - Wie übersetzen?

  Alt 26. Dez 2010, 20:50
Delphi-Version: 5
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:
//...
void Out(const char *szFormat, ...);
//...
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#2

AW: Out in C++ Klasse - Wie übersetzen?

  Alt 26. Dez 2010, 21:31
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 Delphi-Referenz durchsuchenChar, 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 Delphi-Referenz durchsuchenstdcall tippen, oder eventuell Delphi-Referenz durchsuchencdecl, 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)

procedure Output(szFormat: PChar; ...); stdcall;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (26. Dez 2010 um 21:38 Uhr)
  Mit Zitat antworten Zitat
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#3

AW: Out in C++ Klasse - Wie übersetzen?

  Alt 26. Dez 2010, 22:03
Danke aber ich dachte das bei einer externen Klasse die Namen der Funktionen gleich sein müssen!
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Out in C++ Klasse - Wie übersetzen?

  Alt 27. Dez 2010, 00:47
Also ist kann das ohne Probleme erstellen...
Delphi-Quellcode:
procedure Out(const szFormat:PChar);
begin
end;
Auch wenn das Out farbig hervorgehoben wird, so ist der Kontext korrekt. Ich verwende Delphi 7.

PS: Selbst eine DLL ist so ohne Probleme möglich. Geht das mit Delphi 2010 nicht mehr? (Kann es gerade nicht ausprobieren)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#5

AW: Out in C++ Klasse - Wie übersetzen?

  Alt 27. Dez 2010, 08:43
Man kann beim Import ja einen anderen Namen angeben, als man nutzt.
Somit wäre es kein Poblem, intern einen anderen Namen zu verwenden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#6

AW: Out in C++ Klasse - Wie übersetzen?

  Alt 27. Dez 2010, 10:06
Ok vielen Dank ich habe aber noch eine ähnliche Frage. Wie würdet ihr folgendes übersetzen:
Code:
interface ISpr
{
  virtual INT      Begin(DWORD dMode=0)=0;
  virtual INT      End()=0;
};
Mein Vorschlag wäre folgender bin mir aber nicht sicher wegen interface und Begin und End.
Delphi-Quellcode:
type
  ISpr = interface
    function &Begin(dMode: DWORD = 0): Integer; cdecl;
    function &End(): Integer; cdecl;
  end;
// edit: @mirage228 Danke für den Tipp mit &.

Geändert von Yakumo500 (27. Dez 2010 um 11:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Out in C++ Klasse - Wie übersetzen?

  Alt 27. Dez 2010, 10:41
Also ist kann das ohne Probleme erstellen...
Delphi-Quellcode:
procedure Out(const szFormat:PChar);
begin
end;
Auch wenn das Out farbig hervorgehoben wird, so ist der Kontext korrekt. Ich verwende Delphi 7.

PS: Selbst eine DLL ist so ohne Probleme möglich. Geht das mit Delphi 2010 nicht mehr? (Kann es gerade nicht ausprobieren)
Im Zweifel einfach ein & vor den Bezeichner. Ich weiß jedoch nicht, ob sowas in Delphi 7 schon geht.

Delphi-Quellcode:
var
  &begin: Integer;
  &out: string;
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  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 00:36 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