AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wer Hilft bei einer kleinen übersetzung Delphi > C ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wer Hilft bei einer kleinen übersetzung Delphi > C ?

Ein Thema von EWeiss · begonnen am 2. Aug 2007 · letzter Beitrag vom 2. Aug 2007
Antwort Antwort
Seite 3 von 3     123   
EWeiss
(Gast)

n/a Beiträge
 
#21

Re: Wer Hilft bei einer kleinen übersetzung Delphi > C ?

  Alt 2. Aug 2007, 17:21
Zitat von Apollonius:
Wenn du in Delphi einen Parameter als var deklarierst, macht der Compiler dass, was du in C explizit hinschreiben musst: nicht der Wert der Variablen, sondern ihre Adresse wird übergeben. Somit ist die C-Deklaration in dieser Hinsicht korrekt, wenn man mal davon absieht, dass du anscheinend _stdcall vergessen hast (hinter das void).
Hmmm wo vergessen?

Code:
void _stdCall BASSVISDEF(BASSVIS_ExecutePlugin)(BASSVIS_EXEC* Param, BASSVIS_PARAM out Base);
?? korrekt

oder
Code:
void _stdCall BASSVISDEF(BASSVIS_ExecutePlugin)(BASSVIS_EXEC* Param, BASSVIS_PARAM* Base);
gruss Emil
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#22

Re: Wer Hilft bei einer kleinen übersetzung Delphi > C ?

  Alt 2. Aug 2007, 17:30
Jetzt ist das _stdcall richtig.
Zur zweiten Frage: Ein Stern genau dann, wenn in Delphi ein Zeiger oder ein var.

Diese out-Schreibweise kenne ich nicht, ich weiß nicht, ob das kompatibel ist. Zur Sicherheit würde ich
BASSVIS_PARAM * Base empfehlen.

Man editierst du schnell. Da will man gerade die Lösung posten, und du schlägst sie schon vor.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#23

Re: Wer Hilft bei einer kleinen übersetzung Delphi > C ?

  Alt 2. Aug 2007, 17:37
Zitat von Apollonius:
Man editierst du schnell. Da will man gerade die Lösung posten, und du schlägst sie schon vor.
Jo sorry

Nur noch zwei fragen

Code:
BASSVIS_PARAM* BASSVISDEF(BASSVIS_GetPluginHandle)(BASSVIS_KIND_T Kind, char *Pluginfile);
Richtig ?

Dann nochmal das hier!

Code:
int BASSVISDEF(BASSVIS_SetPlayState)(BASSVIS_PARAM* Param, PlayState State, int value = -1);
Playstate ist enum muss auch hier ein Stern übergeben werden?

Code:
int BASSVISDEF(BASSVIS_SetPlayState)(BASSVIS_PARAM* Param, PlayState* State, int value = -1);
gruss und danke Emil

EDIT:
Noch vergessen kennt C HWND oder besser als DWORD deklarieren?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#24

Re: Wer Hilft bei einer kleinen übersetzung Delphi > C ?

  Alt 2. Aug 2007, 17:49
@1: vermute ich richtig, dass in der ersten Klammer der Name steht, wie er in der DLL definiert ist? Wenn ja - wo sagst du, woraus und dass er importieren soll?
@2:
Zitat:
Ein Stern genau dann, wenn in Delphi ein Zeiger oder ein var.
Hier also kein Stern.
@edit: ausprobieren.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#25

Re: Wer Hilft bei einer kleinen übersetzung Delphi > C ?

  Alt 2. Aug 2007, 17:55
Zitat:
vermute ich richtig, dass in der ersten Klammer der Name steht, wie er in der DLL definiert ist? Wenn ja - wo sagst du, woraus und dass er importieren soll?
verstehe nicht was du jetzt meinst.
In der ersten Klammer steht die Funktion wie in Delphi Deklariert.
BASSVISDEF ist die Definition für die LIB

Delphi-Quellcode:
function BASSVIS_GetPluginHandle(Kind: TBASSVIS_KIND_T;
    Pluginfile: PChar
): PBASSVIS_PARAM; stdcall; external dllfile;
Ist der Stern dann nicht richtig?
Code:
BASSVIS_PARAM* BASSVISDEF(BASSVIS_GetPluginHandle)(BASSVIS_KIND_T Kind, char *Pluginfile);

EDIT:
Hab mal ne neue Type deklariert
Code:
typedef DWORD HWND;
Kann nicht verkehrt sein
Ausprobieren kann ich nicht da ich mich in C nicht auskenne.

gruss Emil
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#26

Re: Wer Hilft bei einer kleinen übersetzung Delphi > C ?

  Alt 2. Aug 2007, 18:01
Zitat von EWeiss:
Ist der Stern dann nicht richtig?
Code:
BASSVIS_PARAM* BASSVISDEF(BASSVIS_GetPluginHandle)(BASSVIS_KIND_T Kind, char *Pluginfile);
Da ist der richtig!

Zitat von EWeiss:
EDIT:
Hab mal ne neue Type deklariert
Code:
typedef DWORD HWND;
Kann nicht verkehrt sein
Ausprobieren kann ich nicht da ich mich in C nicht auskenne.
Äh, warum tust Du das?! Es gibt den Typen HWND natürlich schon in C, dass der auch nur ein DWORD ist stimmt zwar, aber es sollte Dir klar sein, dass Du nicht einfach alle Windows-Standardtypen neu deklarieren solltest! Schau einfach in das Windows PSDK, da findest Du die im Windows-API angegebenen Header, die wiederum die Standardtypen enthalten!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#27

Re: Wer Hilft bei einer kleinen übersetzung Delphi > C ?

  Alt 2. Aug 2007, 18:10
Zitat:
Äh, warum tust Du das?! Es gibt den Typen HWND natürlich schon in C, dass der auch nur ein DWORD ist stimmt zwar, aber es sollte Dir klar sein, dass Du nicht einfach alle Windows-Standardtypen neu deklarieren solltest! Schau einfach in das Windows PSDK, da findest Du die im Windows-API angegebenen Header, die wiederum die Standardtypen enthalten!
Gut werde sie wieder entfernen..
Bin mir nur nicht sicher ob C HWND aktzeptiert oder ob hier groß oder Kleinschreiben beachtet werden mus.

gruss Emil
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#28

Re: Wer Hilft bei einer kleinen übersetzung Delphi > C ?

  Alt 2. Aug 2007, 22:45
danke für eure Hilfe...
Wenn jetzt noch probleme sind müssen sich die Developer halt selber helfen.

gruss Emil
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 17:49 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