![]() |
C zu Delphi Übersetzungs Frage
Hallo alle zusammen wie übersetzte ich den das ins Delphi
Code:
Habe mal so weit wie ich s kapieren würde übersetzt!
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; ...
Delphi-Quellcode:
Könnt ihr mir helfen ?
LNNotesSession class(LNNotesClass)
private public procedure AbbreviateName(const name: LNString; shortname: pLNString); //Ist das so richtig ? constructor Create; //würde ich ~LNNotesSession(); zuordnen end; |
Re: C zu Delphi Übersetzungs Frage
* pusch * :cry:
Kann mir keiner Helfen ? oder einen link ? |
Re: C zu Delphi Übersetzungs Frage
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. |
Re: C zu Delphi Übersetzungs Frage
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:
|
Re: C zu Delphi Übersetzungs Frage
Ich vermude mal das LNSTATUS =
Code:
Wobei ich nicht ganz verstehe was die da machen? :(#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; Ist das dann der Destructer ?
Code:
Ich habe vor eine Schnittstelle einer DLL zunutzen! :-D
~LNNotesSession();
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! |
Re: C zu Delphi Übersetzungs Frage
* pusch *
|
Re: C zu Delphi Übersetzungs Frage
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 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