Einzelnen Beitrag anzeigen

Rifmetroid

Registriert seit: 8. Mai 2007
2 Beiträge
 
#1

c dll, Funktion mit Pointer als Rückgabetyp nutzen

  Alt 8. Mai 2007, 11:29
Moin moin,

ich bin neu hier und muss sagen, mir gefällt das Forum sehr gut. Ich konnte bis jetzt schon sehr viele Dinge selbst in Erfahrung bringen. Jetzt bin ich jedoch auf ein Problem gestoßen, bei dem ich nicht weiterkomme und auch nichts passendes im Forum gefunden habe.

Ich habe eine DLL, welche in C geschrieben ist. Darin gibt es eine Funtkion, die ich statisch in mein Delphiprogramm einbinden möchte. Das Problem besteht nun darin, dass diese Funktion als Rückgabetyp einen Pointer auf eine Struktur darstellt und ich nicht weiß, wie ich das in Delphi abbilden soll. Dazu hier mal ein wenig Quellcode, den ich bis jetzt habe:

Auszug aus der C++ DLL
Code:
struct Test
{
   int iValue;
   char cName[15];
};

...

Test *pTest;

...

CSCWIN_EXT CSCWIN_EXPORT const Test * CSCWIN_API GetTest(void)
{
    ...
    return pTest;
}
bisherige Delphi-Umsetzung
Delphi-Quellcode:
type TTest = record
     iValue: integer;
     cName: array[0..14] of char;
     end;
  P_Test = ^TTest;

...

function GetTest():P_Test; stdcall; external 'Test.dll';

...

test : TTest;

...
Erste Frage: Ist die Umsetzung der Funktion so korrekt?

Dann meine zweite Frage: Wie rufe ich die Funktion nun auf, so dass ich den Rückgabepointer meinem Delphi-Pointer zuweisen kann?

Vielen Dank schon mal im Voraus!

Gruß

Christian
  Mit Zitat antworten Zitat