Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DLL, die Objekt exportiert, einbinden (https://www.delphipraxis.net/73470-dll-die-objekt-exportiert-einbinden.html)

sieppl 18. Jul 2006 15:57


DLL, die Objekt exportiert, einbinden
 
Hi!

Wie wrappt man folgendes in Delphi? Ich habe bisher nur einfache Funktionen aus DLLs gewrappt und
bin ratlos. Ich frage mich wie man die public-Methoden adressiert.

Code:
extern "C"
{
DLL_EXPORT DLLObject* GetObject(); }

class DLLObject
{
public:

  virtual void STDMETHODCALLTYPE AddRef() const = 0;
  virtual void STDMETHODCALLTYPE Release() const = 0;

  virtual int STDMETHODCALLTYPE
  DoSomething(const unsigned char *a, const int c, void* Param = 0, bool(*callback)(double dProgress, void* Param) = 0) = 0;

  virtual int STDMETHODCALLTYPE GetFoundObjectsNum() = 0;
  virtual int STDMETHODCALLTYPE GetObjects(const int a, RECT *b) = 0;
  virtual bool STDMETHODCALLTYPE CanFindMore() = 0;
  virtual void STDMETHODCALLTYPE FindMore() = 0;
  virtual void STDMETHODCALLTYPE ResetToInitialFind() = 0; }
Grüße

Sebastian

Olli 10. Sep 2006 11:03

Re: DLL, die Objekt exportiert, einbinden
 
Das geht leider nur, wenn die C++-DLL dir ein Interface zur Verfügung stellt, weil nur da das VTable-Format festgelegt ist. Ansonsten stößt du hier an die Grenzen dessen was möglich ist, weil sich die Compiler nicht vertragen (müssen sie ja auch nicht).

Bspw. könnte es sein, daß 2 verschiedene C/C++-Compiler einander schon mißverstehen wenn es um Export/Import eines solchen Objektes geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 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