AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein EILT: DLL - Char[28] in Delphi = ????
Thema durchsuchen
Ansicht
Themen-Optionen

EILT: DLL - Char[28] in Delphi = ????

Ein Thema von Meta777 · begonnen am 3. Mai 2007 · letzter Beitrag vom 3. Mai 2007
Antwort Antwort
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

EILT: DLL - Char[28] in Delphi = ????

  Alt 3. Mai 2007, 11:26
huhu,

wie geht folgendes in delphi zu übersetzen:
Code:
typedef struct
{
char Name[29]; // name
.... //weitere Char[XX] Felder ausgelassen
unsigned char Pruefsumme; // Pruefsumme des Records
} BLahRecord;
Ich hab es mit String[29], Array[0..28] of Char und PChar versucht - ohne Erfolg.
wie lautet die richtige Übersetzung für "char NAme[29]"?
Und ist "unsigned char" = Byte?

Danke für die Hüülllfen
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: EILT: DLL - Char[28] in Delphi = ????

  Alt 3. Mai 2007, 11:28
Hallo,


array[0..28] ist schon richtig
du musst aber nen packed record nehmen.

Und zweitens, char oder Byte ist egal.


http://scp.assarbad.net/delphi_c.htm (2. Seite)


Heiko
Heiko
  Mit Zitat antworten Zitat
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: EILT: DLL - Char[28] in Delphi = ????

  Alt 3. Mai 2007, 11:32
Danke heiko,
hat ich schon probiert auch als packed record. Leider gehts noch nicht.
Aber vielleicht ist der Aufruf nicht korrekt?
Code:
ReadRecord(Record *Record);
Das heißt doch ic hmuss es als Pointer auf dem Record übergeben, oder?


EDIT:
Mein momentaner Aufruf: Aber es kommt nur Müll ins Record

Delphi-Quellcode:
var
  LRec: PRecord;
begin
  New(LRec);
  try
    FillChar(LRec^, SizeOf(LRec^), #0);
    ReadRecord(LRec);
    memOutput.Lines.Add(LRec^.Name); // Ist nur "Müll" drinne??!??!?!!?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: EILT: DLL - Char[28] in Delphi = ????

  Alt 3. Mai 2007, 11:41
Hallo,

zeig mal den C-Prototyp der Funktion + Variablen-Definition.
Vielleicht muss du in Delphi auch noch stdcall definieren.

Unter Delphi ist das als einfachstes als "var" zu definieren.
Wenn du das als Pointer machen willst, musst du @theVar übergeben.

in c:
void bla(TRec *theParam);

In Delphi kann es wie gesagt mit "var" vereinfacht werden,
die Zeiger-Arithmetik macht dann Delphi für dich.

Delphi-Quellcode:
type
  PRec = ^TRec;
  TRec = packed record
end;

proc bla(var theParam: TRec);
proc bla2(theParam: PRec);

var
  MyVar: TVar;
  
bla(MyVar);
bla2(@MyBar);
Heiko
Heiko
  Mit Zitat antworten Zitat
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: EILT: DLL - Char[28] in Delphi = ????

  Alt 3. Mai 2007, 11:45
Ich Morehuhn...
hab staat stdcall "of object" geschrieben...

Thank you very much

Gottes Segen Dir
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz