AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C - Funktionsaufruf nach Delphi konvertieren
Thema durchsuchen
Ansicht
Themen-Optionen

C - Funktionsaufruf nach Delphi konvertieren

Ein Thema von CF_Freak21 · begonnen am 3. Dez 2003 · letzter Beitrag vom 4. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von CF_Freak21
CF_Freak21

Registriert seit: 20. Nov 2003
Ort: Regen (Bayerwald)
22 Beiträge
 
Delphi 7 Enterprise
 
#1

C - Funktionsaufruf nach Delphi konvertieren

  Alt 3. Dez 2003, 17:41
Hi Leute, ich brauch unbedingt eure Hilfe...
Ich muss unbedingt diesen Funktionsaufruf von C nach Delphi konvertieren...

short Getdaten ( char NR[5], datenstruktur* daten )

Ich hasse dieses gottverdammte C!
die funk. steht nat. in ner dll....
Wär ja auch zu schön wenn man was lesen könnte was die Funk. eigentlich macht...

Bitte, falls jemand ansatzweise nen Plan von C hat helft mir...
2 Dinge sind unendlich:
Das Universum und die menschliche Dummheit.
Beim Universum bin ich mir aber noch nicht sicher.
------------Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: C - Funktionsaufruf nach Delphi konvertieren

  Alt 3. Dez 2003, 18:24
Tja, ohne nähere Informationen über die Funktion und die Datenstruktur, wird das hier nichts geben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von CF_Freak21
CF_Freak21

Registriert seit: 20. Nov 2003
Ort: Regen (Bayerwald)
22 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: C - Funktionsaufruf nach Delphi konvertieren

  Alt 4. Dez 2003, 07:28
Die Datenstruktur sieht folgendermassen aus

Delphi-Quellcode:
type datenstruktur = record
  Vorname : array of char [0..35]
  ....
end;
in c ist die Struktur genau gleich definiert.
sind nat. noch mehr felder aber ich darf die Struktur nicht rausgeben.
Haben aber alle den gleichen Datentyp array of char.
Es handelt sich hierbei konkret um eine Implementierung des ELSTER-Programmes der Bundesregierung.
(ELSTER = ElektronischeLohnsteuer oder so )
Mir ginge es eigentlich nur darum wie ich das hinkriege das er mir diese Strukt. in eine Delphi-Record hineinschreibt...
Ausserdem würd mich mal interessieren was dieser Stern in C heisst....
Hat doch was mit Pointern zu tun oder?
2 Dinge sind unendlich:
Das Universum und die menschliche Dummheit.
Beim Universum bin ich mir aber noch nicht sicher.
------------Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: C - Funktionsaufruf nach Delphi konvertieren

  Alt 4. Dez 2003, 07:38
Ich sehe dein Problem nicht. Die Struktur hast du doch jetzt schon übersetzt. Jetzt machst du dir eine Variable vom Typ des Records:
Delphi-Quellcode:
var
  ds: datenstruktur;
Und kannst so darauf zugreifen:
  ds.Vorname := 'Gerome'; Records bennent man in Delphi üblicherweise mit einem großem "T":
Delphi-Quellcode:
type
  TDatenstruktur = record
    Vorname: ....;
  end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von CF_Freak21
CF_Freak21

Registriert seit: 20. Nov 2003
Ort: Regen (Bayerwald)
22 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: C - Funktionsaufruf nach Delphi konvertieren

  Alt 4. Dez 2003, 07:46
ARGL...
Ich kann mich wohl irgendwie leider nicht deutlich genug ausdrücken...
Veruchen wirs nochmal:
Die Funktion aus der DLL erwartet irgendwie einen Pointer auf diese Struktur.
Ich habe aber keine Ahnung von Pointern.
Ich muss das irgendwie rüberkriegen, damit die C-Funktion da was reinschreiben kann.
Ansonsten kenn ich mich mit Records schon aus. (in Delphi)
Was ich nicht weiss ist
a) was diese c-Funktion eigentlich zurückgibt
b) wie ich sie in Delphi-Syntax schreibe
c) was ich schreiben muss damit ich sie erfolgreich aufrufe.

Ich werd nochmal blöde mit dem Scheissding...
2 Dinge sind unendlich:
Das Universum und die menschliche Dummheit.
Beim Universum bin ich mir aber noch nicht sicher.
------------Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: C - Funktionsaufruf nach Delphi konvertieren

  Alt 4. Dez 2003, 07:51
Also einen Pointer auf die Struktur bekommst du so:
Delphi-Quellcode:
type
  TDaten = record
    ...: ...;
    ...: ...;
  end;
PDaten = ^TDaten;
Und anwenden:
Delphi-Quellcode:
var
  Daten: PDaten;
begin
  // Speicher anfordern
  New(Daten);
  ...;
  ...;
  // Speicher wieder freigeben
  Dispose(Daten);
Aber so lange du keine Dokumentation oder eine Header-Datei zu der DLL hast, ist das alles nur Rungerate und endet in try and error.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von CF_Freak21
CF_Freak21

Registriert seit: 20. Nov 2003
Ort: Regen (Bayerwald)
22 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: C - Funktionsaufruf nach Delphi konvertieren

  Alt 4. Dez 2003, 08:03
Sorry, das versteh ich jetz nicht ganz
ich hab doch oben die def. der function in c angegeben...
Das mit dem Pointer hat mir aber schon geholfen, danke dafür.
Des Pudels kern ist aber das ich nicht weiss was diese Funktion in C erwartet...
Dieser Stern verwirrt mich...
Ich möchte nur gerne wissen wie die Struktur dieser Funktion in Delphi lauten muss, damit das hinhaut.
Das mist STdcall etc. wüsste ich auch schon, das geht bereits alles.
Es geht eigentlich nur darum folgendes in Delphi umzusetzen:


short Getdaten ( char NR[5], datenstruktur* daten )

function GetDaten (Nr: PChar; ?????????):byte stdcall;
2 Dinge sind unendlich:
Das Universum und die menschliche Dummheit.
Beim Universum bin ich mir aber noch nicht sicher.
------------Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: C - Funktionsaufruf nach Delphi konvertieren

  Alt 4. Dez 2003, 08:07
Das was du an Source gepostet hast, ist Delphi Syntax!

Ja den Zeiger hast du doch jetzt. Übergib ihn doch einfach.

Delphi-Quellcode:
type
  TDaten = record
    ...: ...;
    ...: ...;
  end;
PDaten = ^TDaten;

var
  Daten: PDaten;
  fnResult: Byte;
begin
  // Speicher anfordern
  New(Daten);
  try
    fnResult := foo('bar', Daten);
  finally
    // Speicher wieder freigeben
    Dispose(Daten);
  end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von CF_Freak21
CF_Freak21

Registriert seit: 20. Nov 2003
Ort: Regen (Bayerwald)
22 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: C - Funktionsaufruf nach Delphi konvertieren

  Alt 4. Dez 2003, 08:09
Das ist der Source in Delphi, den ich schon weiss...
Das andere haut nicht hin... da wo die Fragezeichen stehen.
2 Dinge sind unendlich:
Das Universum und die menschliche Dummheit.
Beim Universum bin ich mir aber noch nicht sicher.
------------Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: C - Funktionsaufruf nach Delphi konvertieren

  Alt 4. Dez 2003, 08:19
Die Deklaration der Funktion müsste lauten:
function GetDaten (Nr: PChar; Daten: PDaten):byte stdcall; Oder als Pointer:
function GetDaten (Nr: PChar; Daten: Pointer):byte stdcall; Und dann in der Funktion:
Delphi-Quellcode:
function GetDaten (Nr: PChar; Daten: Pointer):byte stdcall;
var
  Daten: TDaten;
begin
  Daten.Vorname := PDaten(daten)^.Vorname;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:26 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