Danke für die schnelle Antwort.
Wenn ich so direkt an die Funktionen komme dann ist aktuell mein Problem die Deklaration der TDLLFunktion.
Ich habe zu der
DLL eine *.h und eine *.c Datei. Ich vermute das ist der Quellcode der
DLL.
Hier ein Aiszug:
Code:
/* interface IDavidClientAddin */
/* [object][nonextensible][uuid] */
DEFINE_GUID(IID_IDavidClientAddin,0xC7255970,0xEB0B,0x42ef,0x86,0xD0,0xC3,0x1F,0x6D,0x34,0x4D,0x03);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("C7255970-EB0B-42ef-86D0-C31F6D344D03")
IDavidClientAddin : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Startup(
/* [in] */ IDispatch *pInfoCenter) = 0;
virtual HRESULT STDMETHODCALLTYPE Initialize(
/* [in] */ IDispatch *pInfoCenter,
/* [in] */ VARIANT vKey) = 0;
virtual HRESULT STDMETHODCALLTYPE Shutdown( void) = 0;
};
#else /* C style interface */
typedef struct IDavidClientAddinVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IDavidClientAddin * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IDavidClientAddin * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IDavidClientAddin * This);
HRESULT ( STDMETHODCALLTYPE *Startup )(
IDavidClientAddin * This,
/* [in] */ IDispatch *pInfoCenter);
HRESULT ( STDMETHODCALLTYPE *Initialize )(
IDavidClientAddin * This,
/* [in] */ IDispatch *pInfoCenter,
/* [in] */ VARIANT vKey);
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
IDavidClientAddin * This);
END_INTERFACE
} IDavidClientAddinVtbl;
interface IDavidClientAddin
{
CONST_VTBL struct IDavidClientAddinVtbl *lpVtbl;
};
In meine Delphi client müsste das dann so aussehen:
Delphi-Quellcode:
IDavidClientAddin = interface
['{C7255970-EB0B-42ef-86D0-C31F6D344D03}']
procedure Startup(pInfoCenter: IDispatch); stdcall;
procedure Initialize(pInfoCenter: IDispatch; vKey: Variant); stdcall;
procedure Shutdown(void: HMODULE); stdcall;
end;
Weiter komme ich nicht.