2009-09-30 11 views

Odpowiedz

11

Nie można zaimportować zajęć. Możesz importować tylko funkcje. Rudy Velthuis has written at length on the topic. Chociaż nie można korzystać bezpośrednio wyeksportowany klasa C++, opisuje kilka technik, aby osiągnąć ten sam efekt:

  • „spłaszczania” obiektu, tak po stronie wywołującego nie ma żadnego obiektu już tylko wskaźnik, który zostanie przekazany do biblioteki DLL wraz z innymi parametrami dla szeregu funkcji, które otaczają metody obiektu. Pisanie opakowania jest bardzo proste, chociaż może być uciążliwe.

  • Używaj czystych wirtualnych klas. Kompilatory Windows C++ i Delphi mają zwykle te same układy VMT, więc jeśli klasę C++ można opisać za pomocą listy czystych metod wirtualnych, można utworzyć równoważną deklarację Delphi, wykonać niektóre odlewanie za pomocą wskaźnika obiektu zwróconego przez bibliotekę DLL, i kontynuuj.

Pełne przykłady obu sposobów podane są w artykule.

4

Nie można używać klas C++ wyeksportowanych z biblioteki DLL, o ile wiem w Delphi; możesz korzystać z funkcji C i możesz importować klasy COM do Delphi.

Powiązane problemy