AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Interface von Delphi -> C++?

Ein Thema von Memnarch · begonnen am 22. Mär 2013 · letzter Beitrag vom 23. Mär 2013
Antwort Antwort
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

Interface von Delphi -> C++?

  Alt 22. Mär 2013, 11:14
Tag allerseits,
mich würde interressieren ob man ein Interface aus delphi an ein in C++(nicht Builder) geschriebenes programm zur nutzung weitergeben kann?
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Interface von Delphi -> C++?

  Alt 22. Mär 2013, 11:19
Tag allerseits,
mich würde interressieren ob man ein Interface aus delphi an ein in C++(nicht Builder) geschriebenes programm zur nutzung weitergeben kann?
Ja, wenn die ganzen Aufrufkonventionen stimmen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Interface von Delphi -> C++?

  Alt 22. Mär 2013, 12:00
Wenn es auf COM-Style ist ja.
Lies dir mal das durch: http://rvelthuis.de/articles/articles-cppobjs.html
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#4

AW: Interface von Delphi -> C++?

  Alt 22. Mär 2013, 12:12
@Bernhard Geyer:
Jain, das ist von C++ nach Delphi. Wenn es andersrum keinen unterschied macht. Auf diesen Artikel war ich vor wenigen Tagen schonmal gestoßen. War mir aber unsicher ob das auch andersrum geht.

@Sir Rufo
Wenn ich also prinzipiel überall stdcall hinter/vorklatsche würde es passen?
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Interface von Delphi -> C++?

  Alt 22. Mär 2013, 12:29
@Bernhard Geyer:
Jain, das ist von C++ nach Delphi. Wenn es andersrum keinen unterschied macht. Auf diesen Artikel war ich vor wenigen Tagen schonmal gestoßen. War mir aber unsicher ob das auch andersrum geht.
Es müsste auch anders herum gehen.

AFAIK ist das Problem das im C++Standard nicht genau festgelegt ist wie die Methodentabelle genau aufgebaut ist (Basisadresse und Co.). MS hat diese Problem im COM-Standard mit genauen regeln gelöst so das Interfaces Sprachübergreifend funktionieren.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#6

AW: Interface von Delphi -> C++?

  Alt 22. Mär 2013, 12:47
ah ok. Gut zu wissen. Also kann ich somit für ein DelphiHauptprogramm Interfaces erstellen, die mir ein Pluginsystem ermöglichen, welche auch Plugins aus C++ erlauben^^
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Interface von Delphi -> C++?

  Alt 22. Mär 2013, 15:40
Ich würde die Interfaces aber nicht nur für C++ verfügbar machen, sondern allgemeiner für COM, wie es hier auch schon andere gesagt haben.

Hier gibt es eine schöne Tabelle dazu: http://www.dynamsoft.com/help/TWAIN/...ataMapping.htm


Denn im oben genannten Thema ist das z.B. schon mit dem einfach Booleschen Datentypen problematisch (bool<->Boolean).

Delphi:
Zitat:
Eine Boolean-Variable belegt ebenso wie eine ByteBool-Variable ein Byte Speicherplatz. Eine WordBool-Variable belegt 2 (ein Word) und eine LongBool-Variable 4 Byte (zwei Word).
von Boolesche Typen

C++:
Zitat:
In Visual C++4.2, the Standard C++ header files contained a typedef that equated bool with int. In Visual C++ 5.0 and later, bool is implemented as a built-in type with a size of 1 byte. That means that for Visual C++ 4.2, a call of sizeof(bool) yields 4, while in Visual C++ 5.0 and later, the same call yields 1.
von bool (C++)

D.h. in C++ war ein Bool mal mit 4 Bytes definiert. Aber von C++ gibt es ja nicht nur das C++ aus Visual Studio, sondern auch einige freie Compiler. Dort kann der Datentyp noch ganz anders definiert sein. Sowas endet dann früher oder später im Chaos

Für die größte Kompatibilität immer COM nehmen und das heißt in diesem super simplen Beispiel WordBool nehmen


Der Nachteil an COM ist die Geschwindigkeit (reference counting), aber bei der heutigen Leistung eines PC spielt das keine Rolle mehr
Sebastian
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#8

AW: Interface von Delphi -> C++?

  Alt 23. Mär 2013, 09:00
Wenn ich also prinzipiel überall stdcall hinter/vorklatsche würde es passen?
Besser wäre safecall.
Damit lassen sich Exceptions einfacher zwischen den Systemen austauschen.
MSDN-Library durchsuchenIErrorInfo
MSDN-Library durchsuchenSetErrorInfo
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”

Geändert von Elvis (23. Mär 2013 um 09:03 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:02 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