Einzelnen Beitrag anzeigen

AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#15

AW: C++ DLL (Funktion) nach Delphi

  Alt 18. Apr 2018, 11:12
Hallo,
ich bin mir nicht sicher, ob ich hier nochmal eine Frage zu dem Thema stellen kann oder ob ich ein neuen Thread hätte aufmachen sollen (gebt mir eine Info wenn ich ein neuen Thread aufmachen soll).

Folgendes Konstrukt habe ich in C vorliegen:

Delphi-Quellcode:
#define My_MAX_ADDR 127U
#define My_MAX_NR (My_MAX_ADDR + 1)

typedef unsigned char My_BYTE;
typedef unsigned short My_WORD;
typedef unsigned long My_DWORD;
typedef long My_LONG;

typedef struct My_DATA_INT_S
{
  My_BYTE      value1;
  My_BYTE      no_ram_here_dont_touch[0x00FF];
}
 PPC_BYTE_PACKED My_DATA_INT_T;

typedef struct My_EF_S
{
My_DATA_INT_T  value1[My_MAX_NR];
My_BYTE        reserved_b_00[0x8000];
My_DATA_INT_T  value2[My_MAX_NR];
My_BYTE        reserved_b_01[0x8000]; 

}
 PPC_BYTE_PACKED My_EF_T;
Dieses Struktur muss ich jetzt nach Delphi umbauen.
Mein Vorschlag (bin mir mit den Hex-Offsets hinter den Variablen aber nicht sicher):

Delphi-Quellcode:
const
  My_MAX_ADDR = 127;
  My_MAX_NR = (My_MAX_ADDR + 1);

type
  TMy_MASK_DATA_INT = packed record
    value1 : BYTE;
    no_ram_here_dont_touch : BYTE;
  end;
Den packed record für "My_EF_T" bekomme ich leider nicht abgebildet.
Habt ihr eine Idee wie man das umsetzen könnte?

So vielleicht?
Delphi-Quellcode:
type
  TMy_EF = packed record
    value1 : array[0..My_MAX_NR] of TMy_MASK_DATA_INT;
    reserved_b_00 : BYTE;
    value2 : array[0..My_MAX_NR] of TMy_MASK_DATA_INT;
    reserved_b_01 : BYTE;
  end;

Geändert von AJ_Oldendorf (18. Apr 2018 um 11:17 Uhr)
  Mit Zitat antworten Zitat