AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

C --> Delphi übersetzen

Ein Thema von Mystic · begonnen am 9. Jun 2006 · letzter Beitrag vom 10. Jun 2006
Antwort Antwort
Benutzerbild von Mystic
Mystic

Registriert seit: 18. Okt 2003
Ort: Flerzheim
420 Beiträge
 
Turbo Delphi für Win32
 
#1

C --> Delphi übersetzen

  Alt 9. Jun 2006, 19:53
Ich versuche mit Delphi eine DLL anzusprechen. Die entsprechende Header-Datei enthält u.a. folgenden Code:

Code:
#if defined(_WIN32) && !defined(_XBOX)
 /* _OPENAL32LIB is deprecated */
 #if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB)
  #define AL_API __declspec(dllexport)
 #else
  #define AL_API __declspec(dllimport)
 #endif
#else
 #define AL_API extern
#endif

#if defined(_WIN32)
 #define AL_APIENTRY __cdecl
#else
 #define AL_APIENTRY
#endif

typedef int ALenum;
typedef float ALfloat;

AL_API void AL_APIENTRY alGetListenerf( ALenum param, ALfloat* value );

AL_API void AL_APIENTRY alGetListener3f( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );

AL_API void AL_APIENTRY alGetListenerfv( ALenum param, ALfloat* values );
Kann mir jemand hier helfen?

Mich verwirrt hier vor allem ALfloat* value und ALfloat *value. Was ist der Unterschied?
Jan Steffens
Der Fachwortgenerator - 100% Schwachsinn --- Der UPnP Router Manager - Kommentare erwünscht!
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: C --> Delphi übersetzen

  Alt 9. Jun 2006, 20:07
Es gibt keinen Unterschied. Es ist eigentlich Geschmackssache wo man das Sternchen hinpackt. Solange wie sich die Anzahl der Sternchen nicht ändert ... willst du es

Delphi-Quellcode:
type ALfloat = Float;
type PALfloat = ^ALfloat;
type ALenum = Integer;

procedure alGetListenerf(param:ALenum; var value:ALfloat); cdecl;
procedure alGetListener3f(param: ALenum; var value1, value2, value3: ALfloat); cdecl;
procedure alGetListenerfv(param: ALenum; values: PALfloat); cdecl;
Statt PALfloat könntest du auch einen Arraytyp 0..0 deklarieren. So wie es in C aussieht, dürfte es sich um die Übergabe eines Arrays von mehreren Floats handeln ...
  Mit Zitat antworten Zitat
Benutzerbild von Mystic
Mystic

Registriert seit: 18. Okt 2003
Ort: Flerzheim
420 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: C --> Delphi übersetzen

  Alt 9. Jun 2006, 20:09
Aller klar. Danke.
Jan Steffens
Der Fachwortgenerator - 100% Schwachsinn --- Der UPnP Router Manager - Kommentare erwünscht!
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#4

Re: C --> Delphi übersetzen

  Alt 9. Jun 2006, 20:12
Hi Mystic.

Zitat von Mystic:
Mich verwirrt hier vor allem ALfloat* value und ALfloat *value. Was ist der Unterschied?
Gar keiner. Sind beides Pointer auf float.

Grob:

Delphi-Quellcode:
type
  PFloat = ^float;
  AFloat = array of float;

procedure alGetListenerf(Param : Integer; Value : PFloat ); cdecl;
procedure alGetListener3f(Param : Integer; value1, value2, value3 : PFloat ); cdecl;
procedure alGetListenerfv(Param : Integer; Values : AFloat ); cdecl;
Edit: Roten Kasten such...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: C --> Delphi übersetzen

  Alt 9. Jun 2006, 20:52
Zitat:
AFloat = array of float;
Das sollte da gar nicht hinn. Denn ein "Array of" ist ein dynamisches Array von Delphi was mit C so nicht kompatibel ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: C --> Delphi übersetzen

  Alt 10. Jun 2006, 07:55
Ob "ALfloat *Value" zu "Value: PALfloat" oder zu "var Value: ALfloat" zu uebersetzen ist, kann nur geraten werden.
In diesem Fall geben die Parameternamen einen recht sicheren Hinweis was verwendet werden soll.

Delphi-Quellcode:
type
  ALenum = Integer;
  PALfloat = ^ALfloat;
  ALfloat = Single;

procedure alGetListenerf(param: ALenum; var value: ALfloat); cdecl;
procedure alGetListener3f(param: ALenum; var value1: ALfloat; var value2: ALfloat; var value3: ALfloat); cdecl;
procedure alGetListenerfv(param: ALenum; values: PALfloat); cdecl;
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#7

Re: C --> Delphi übersetzen

  Alt 10. Jun 2006, 12:00
Zitat von Robert Marquardt:
Ob "ALfloat *Value" zu "Value: PALfloat" oder zu "var Value: ALfloat" zu uebersetzen ist, kann nur geraten werden.
In diesem Fall geben die Parameternamen einen recht sicheren Hinweis was verwendet werden soll.

Delphi-Quellcode:
type
  ALenum = Integer;
  PALfloat = ^ALfloat;
  ALfloat = Single;

procedure alGetListenerf(param: ALenum; var value: ALfloat); cdecl;
procedure alGetListener3f(param: ALenum; var value1: ALfloat; var value2: ALfloat; var value3: ALfloat); cdecl;
procedure alGetListenerfv(param: ALenum; values: PALfloat); cdecl;
stimmt, Single wäre die korrekte Übersetzung gewesen. Der Rest ist ja quasi gleich ...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:11 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