![]() |
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:
Grüße
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; } Sebastian |
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 10:55 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 by Thomas Breitkreuz