Einzelnen Beitrag anzeigen

messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#11

Re: Meine erste Butterfahrt - Eine dll mit dem BCB erstellen

  Alt 19. Feb 2010, 09:56
So, ich bin da mal wieder dran...

Ich habe jetzt einen struct in der dll erstellt und den als Parameter der function _Multi übergeben. Der Aufruf aus dem Builder klappt, beim Aufruf aus Delphi klemmt es.

Delphi-Quellcode:
TParList = record
    Par1 : double;
    Par2 : double;
    TempLow : double;
    TempHi : double;
    PE : bool;
  end;
sollte identisch sein mit
Code:
typedef struct ParList
{
   double Par1;
   double Par2;
   double TempLow;
   double TempHi;
   bool PE;
} TParList;
Und function _Multi(var Values : TParList) : double; external '2008.dll'; mit
Code:
extern "C" __declspec(dllimport) double Multi(TParList *Values);
In der function selbst wird nur ein Eingabewert als Ergebnis durchgereicht.
Der Aufruf im Delphi-Programm liefert aber Müll zurück. Ich habe die TParList in Delphi lokal definiert und übergebe sie dann als var-Parameter, während ich sie in C++ mit new erzeuge. Kann das ein Problem sein? Ich dachte, beim record wird der Speicher automatisch zugewiesen.

Grüße, Messie
  Mit Zitat antworten Zitat