AGB  ·  Datenschutz  ·  Impressum  







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

C zu Delphi Übersetzungs Frage

Ein Thema von nitschchedu · begonnen am 14. Nov 2006 · letzter Beitrag vom 22. Nov 2006
Antwort Antwort
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#1

C zu Delphi Übersetzungs Frage

  Alt 14. Nov 2006, 08:24
Hallo alle zusammen wie übersetzte ich den das ins Delphi

Code:
class LNIMPEXPCL LNNotesSession : public LNNotesClass
{
friend class LNCalendar;            
public:
   LNNotesSession();
   ~LNNotesSession();

   static void operator delete( void *object );  //Wie übersetzt man das ?
   static void * operator new( size_t size );

   LNSTATUS AbbreviateName( const LNString &name, LNString *shortname ) const;
...
Habe mal so weit wie ich s kapieren würde übersetzt!

Delphi-Quellcode:
LNNotesSession class(LNNotesClass)
 private
 public
  procedure AbbreviateName(const name: LNString; shortname: pLNString); //Ist das so richtig ?

  constructor Create; //würde ich ~LNNotesSession(); zuordnen
end;
Könnt ihr mir helfen ?
Programmieren ..... .
  Mit Zitat antworten Zitat
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#2

Re: C zu Delphi Übersetzungs Frage

  Alt 15. Nov 2006, 15:28
* pusch *
Kann mir keiner Helfen ? oder einen link ?
Programmieren ..... .
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#3

Re: C zu Delphi Übersetzungs Frage

  Alt 15. Nov 2006, 15:34
Also, die Funktion, die denselben Namen hat wie die Klasse, ist der Konstruktor.
Das gleiche mit der Tilde vorneweg ist der Destruktor.

Beim LNString ist die Frage, um was es sich dabei handelt. Zeig also mal die Definition dazu.
Die beiden Operatoren new und delete wurden für diese Klasse überladen, sie dienen der Speicherzuordnung und -freigabe. Du musst vermutlich deutlich mehr posten, damit man sehen kann, ob es wirklich nötig ist, sie zu überladen, bzw. ob und wie man das in Delphi umsetzen könnte.

AbbreviateName ist keine Prozedur, sondern eine Funktion, die einen Rückgabewert vom Typ LNSTATUS hat. Wiederum wäre dessen Definition interessant.

Die Frage ist jetzt, warum genau übersetzt du das? Wenn du hoffst, dass du in Delphi eine von einer DLL exportierte C++-Klasse verwenden kannst, muss ich dich enttäuschen. Wenn du hingegen die Klasse richtig portieren willst, solltest du dir überlegen, ob du nicht einiges anders machen kannst/musst als in C++.

Edit: Rechtschreibfehler korrigiert.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#4

Re: C zu Delphi Übersetzungs Frage

  Alt 15. Nov 2006, 15:41
wenn ich dich richtig verstehe, willst du einfach nur wissen, wie man konstruktoren und destruktoren in pascal syntaktisch markiert, richtig?

steht eigentlich alles in der delphi-hilfe (stichwort "konstruktor"/"destruktor"):


Beispiel (aus Delphi-Hilfe):
Zitat:
Das folgende Beispiel zeigt einen Klassentyp und den zugehörigen Konstruktor:

type
TShape = class(TGraphicControl)
private
FPen: TPen;
FBrush: TBrush;
procedure PenChanged(Sender: TObject);
procedure BrushChanged(Sender: TObject);
public
constructor Create(Owner: TComponent); override;
destructor Destroy; override;
...
end;
constructor TShape.Create(Owner: TComponent);

begin
inherited Create(...);
Width := 65; // Geerbte Elemente initialisieren
Height := 65;
FPen := TPen.Create; // Felder initialisieren
FPen.OnChange := PenChanged;
FBrush := TBrush.Create;
FBrush.OnChange := BrushChanged;
end;
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#5

Re: C zu Delphi Übersetzungs Frage

  Alt 16. Nov 2006, 09:16
Ich vermude mal das LNSTATUS =

Code:

#undef LNERRDEF
#undef LNWARNDEF

#define LNERRDEF( name, msg )    \
   const LNSTATUS LNERR_##name = \
      (((LNSTATUS) LNSTATUS_ERROR) << 16) + LNERR_CODE_##name;

#define LNWARNDEF( name, msg )    \
   const LNSTATUS LNWARN_##name = \
      (((LNSTATUS) LNSTATUS_WARNING) << 16) + LNWARN_CODE_##name;
Wobei ich nicht ganz verstehe was die da machen?



Ist das dann der Destructer ?
Code:
~LNNotesSession();
Ich habe vor eine Schnittstelle einer DLL zunutzen!
Und Einiges will ich auch anders machen.
Mir geht es erstmal darum zuverstehen was sie machen und wie das in Delphi aussieht.

Wenn noch was fehlt was ich posten soll sag einfach bescheid!
Programmieren ..... .
  Mit Zitat antworten Zitat
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#6

Re: C zu Delphi Übersetzungs Frage

  Alt 22. Nov 2006, 10:07
* pusch *
Programmieren ..... .
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: C zu Delphi Übersetzungs Frage

  Alt 22. Nov 2006, 10:25
Das C++ API einer DLL in Delphi zu nutzen ist praktisch unmoeglich.
Begrabe die Idee.

"~LNNotesSession();" Ja, das ist der Destruktor. Lies was OregonGhost geschrieben hat.

Nein du hast nicht die Typdeklaration von LNSTATUS erwischt.
LNERRDEF und LNWARNDEF sind offensichtlich zwei ganz besonders boese C Preprocesor Makros, die der Deklaration von einfachen Zahlenkonstanten in der C Source dienen.
Ich wuerde daher vermuten das LNSTATUS einfach vom Typ DWORD ist.
  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 09:40 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