biblioteki c++ w Delphi

0

Witam
Ostatnio spotkalem sie z problemem wykozystania bibliotek c++
w Delphi.

Nie znam szczegulow problemu ale zastanawiam sie czy jest jakas
w miare prosta metoda uzycia funkcji i procedur napisanych i skompilowanych w c++
przez program pisany w delphi.

pozdrawiam

0

no tak...
To na pewno mi sie przyda, ale chodzilo mi o to
czy jest mozliwosc aby w programie pisanym w delphi
uzyc jakiegos Unitu skompilowanego w C++

po kompilacji w delphi powstaje plik np Unit1.dcu
wiec rozumiem ze w C++ powstaje cos podobnego (np Unit1.ccu (??))

i teraz dochodzimy do sedna sprawy
czy moge wykozystac taki plik w programi pisanym w Delphi????

(a moze ja sie na niczym nie znam i opowiadam jakies glupoty.... )

0
Johny_Morfina napisał(a)

po kompilacji w delphi powstaje plik np Unit1.dcu wiec rozumiem ze w C++ powstaje cos podobnego (np Unit1.ccu (??))

Unit1.obj ;)

0

Nie można. Do programowania z wykorzystaniem róznych języków tylko DLL, obiekty COM.

Chyba, zę mowa o .NET to wtedy w Delphi.NET możesz przechwycić dajmy na to wyjątek wyrzucony przez program w C++.NET korzystający z klasy w Perl.NET używający funkcji napisanej w C# :)

0

Nie, w Delphi można korzystać z plików .OBJ by C/C++, ale generowanych tylko w odpowiednim formacie (nie pamiętam teraz jakim, ale na 99% Visual C++ pod to nie podchodził). Z wykorzystaniem można mieć czasem problemy, ale ogólnie się da.

0
brodny napisał(a)

Nie, w Delphi można korzystać z plików .OBJ by C/C++, ale generowanych tylko w odpowiednim formacie (nie pamiętam teraz jakim, ale na 99% Visual C++ pod to nie podchodził).

No jak już to Borland C++ Builder.

0

Przykład z książki:

Pokażemy teraz, jak ?zamknąć? w bibliotece DLL utworzony w Delphi formularz, przeznaczony do wyświetlenia w sposób modalny. Formularz stanie się dzięki temu dostępny dla dowolnego 32-bitowego środowiska programowania w Windows, na przykład C++Buildera, Visual Basica itp. Formularz ten zawiera komponent TCalendar. Aplikacja, wywołując importowaną z biblioteki funkcję ShowCalendar(), powoduje modalne wyświetlenie formularza ? użytkownik ma wówczas możliwość wyboru konkretnej daty, która po zamknięciu formularza zwracana jest jako wynik wspomnianej funkcji.

Wydruk 6.3. Moduł źródłowy formularza wyświetlanego w sposób modalny
unit DLLFrm;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Grids, Calendar;

type

  TDLLForm = class(TForm)
    calDllCalendar: TCalendar;
    procedure calDllCalendarDblClick(Sender: TObject);
  end;

{ deklaracja eksportowanej funkcji }
function ShowCalendar(AHandle: THandle; ACaption: String): TDateTime; StdCall;

implementation
{$R *.DFM}

function ShowCalendar(AHandle: THandle; ACaption: String): TDateTime;
var
  DLLForm: TDllForm;
begin
  // kopiuj uchwyt aplikacji do obiektu Application biblioteki DLL
  Application.Handle := AHandle;
  DLLForm := TDLLForm.Create(Application);
  try
    DLLForm.Caption := ACaption;
    DLLForm.ShowModal;
    Result := DLLForm.calDLLCalendar.CalendarDate; // przekaż wybraną datę
                                                   // jako wynik

  finally
    DLLForm.Free;
  end;
end;

procedure TDLLForm.calDllCalendarDblClick(Sender: TObject);
begin
  Close;
end;

end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1