AGB  ·  Datenschutz  ·  Impressum  







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

C++ Code in Delphi

Ein Thema von xZise · begonnen am 12. Feb 2008 · letzter Beitrag vom 15. Feb 2008
 
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: C++ Code in Delphi

  Alt 12. Feb 2008, 18:57
Hi,
Du musst etwas aufpassen, sobald Du C++ Code hast, der wirklich Klassen verlangt hast Du mit Delphi ein Problem. Selbst wenn Delphi Dir eine Klasse zur Verfügung stellt, die die gleichen Felder und Methoden bereitstellt, so kannst Du die keineswegs einfach an ein C++-Programm übergeben. Das klappt (afaik) nicht mal ohne Probleme, wenn Du unterschiedliche C++-Compiler verwendet hast.

Beim Kontextmenü des Explorers wird deshalb (wie so ziemlich überall bei den Windows-Schnittstellen) sicherlich nicht C++ sondern C verwendet. Natürlich kannst Du unter C++ sehr leicht verbergen, welche Stellen jetzt reines C und der API geschuldet sind, denn auch das ist gültiger C++ Code, aber die Jungs von MS haben natürlich schon ganz gut mitgedacht! Anders als C++ ist bei C alles sehr einfach (darin liegen sowohl die Stärken, als auch die Schwächen der Sprache). C kennt eben keine Indirektion, verwendet einfache Strukturen und auch Felder sind nur ein großer Speicherblock in dem alle Daten am Stück hintereinander liegen. Das ist nicht kompliziert, also kann auch fast jede Sprache auf diese Art und Weise Daten erzeugen bzw. auf diese zugreifen. Einige Sprachen tun das in Form einer speziellen Schnittstelle (z.B. Haskell mit dem FFI, Java über JNI), andere untersützen das sehr viel direkter (C++).
In Delphi gibt es eigentlich zwei Möglichkeiten:
a) Es gibt schon eine VCL - Kapselung, brauche ich denke ich nicht näher erläutern
b) Man greift auf eine DLL zu. DLLs liegen in einem bekannten Format vor, dass unabhängig von der Programmiersprache ist (und eben auch aus allen genutzt werden kann). In Delphi gibt es dazu dann halt die external Direktive.

Ja, lange Rede, kurzer Sinn. Willst Du ein Windows Mittel nutzen, ist es eigentlich immer C. C kennt keine Klassen, nur Strukturen (und die können leicht in ein Record überführt werden). Die Windowsfunktionen sind zudem häufig schon gekapselt (also die Signatur gibt es schon und Du musst nur die richtige Unit einbinden, die wiederum fast immer wie die Header Datei heißt).

Gruß Der Unwissende
  Mit Zitat antworten Zitat
 


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 21:52 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