c++ og delphi

Tags:    c++

hej

er der nogen der kan vise et kort eksempel på hvordan man får delphi til at arbejde samme med c++.. sklal man lave det som DLL i c++ eller??

fx at lave beregnings kerne i c++, og så kunne bruge den i delphi





2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato

Jeg vil anbefale at du laver det som et COM object med ATL i C++. Dette giver dig også mulighed for at kunne bruge din dll i andre omgivelser. Du kan for eksempel ikke bruge en Win32 DLL (non-COM) i .NET (læs: C#), så ved en eventuel portering til andre sprog vil du alligevel få behov for en COM facade.





Ja, her skal du benytte DLL's eller SO-filer.

Men hvis du har tænkt dig at benytte klasser, skal du passe på.
For da DLL's jo er C, benytter man jo normalt header-filerne til at definere klassernes størrelse, så man alligevel kan benytte klasser i C++, men hvis du definerer de samme klasser i Object Pascal, er det ikke nødvendigvis nøjagtig de samme data strukturer (her mener jeg både størrelse og orden af dataene indeni - det eneste, du reelt kan kontrollere med parametre, er byte padding inde i klassen), idet kompilere jo kan opføre sig temmelig forskelligt på det punkt.

Men hvis du bare skal kombinere C og Pascal, burde det slet ikke være noget problem...

Tja, et eksempel?

C++ DLL (Sample.dll)
Benytter fastcall kaldekonventionen, da det er Delphi's standard (men det er jo lige meget, om du benytter cdecl eller fastcall ved denne funktion, da der returneres i det samme register ved begge).
Fold kodeboks ind/udKode 


Delphi implementering (funktionens deklaration):
Fold kodeboks ind/udKode 


1101110100010110000101000001

Killers don't end up in jail - they end up on a high-score!

[Redigeret d. 15/02-06 17:56:06 af Nicolai Lyster Fersner]



t