Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [C++] - Wie Pointer aus Funktion zurückgeben ? (https://www.delphipraxis.net/139465-%5Bc-%5D-wie-pointer-aus-funktion-zurueckgeben.html)

turboPASCAL 29. Aug 2009 12:34


[C++] - Wie Pointer aus Funktion zurückgeben ?
 
Hi,

Ich möchte aus deiner C++ - DLL einen Pointer zurück geben.
Leider bin ich in Sachen C ein wenig planlos. ;)

So schauts aus:

Delphi-Quellcode:
// das wäre die Function in Delphi
function GetWaveData: PWAVEHDR;
begin
  Result := __wavehdr;
end;


Code:
WAVEHDR * GetWaveData(void);
{
    // __wavehdr pointer
    return=__wavehdr;
}
Der C-Code wird angemeckert mit:

Zitat:

Error E2040 MiniFMOD.c 4138: Declaration terminated incorrectly
*** 1 errors in Compile ***

Dax 29. Aug 2009 12:37

Re: [C++] - Wie Pointer aus Funktion zurückgeben ?
 
Das Delphi @ ist das C(++) & ;) (und hinter die Klammern der Parameterliste kommt *kein* Semikolon)

turboPASCAL 29. Aug 2009 12:39

Re: [C++] - Wie Pointer aus Funktion zurückgeben ?
 
:gruebel:

Äh, __wavehdr ist ja schon ein Pointer.

Zitat:

Parameterliste kommt *kein* Semikolon
Huch, stimmt ja.

Aphton 29. Aug 2009 15:05

Re: [C++] - Wie Pointer aus Funktion zurückgeben ?
 
Und return sollte imho so aussehen
Code:
return value;
Und nicht so
Code:
return=value;

Medium 29. Aug 2009 15:07

Re: [C++] - Wie Pointer aus Funktion zurückgeben ?
 
Müsste es nicht "*void" für einen typenlosen Pointer heissen? Oder geht nur "*" tatsächlich?

Dax 29. Aug 2009 15:21

Re: [C++] - Wie Pointer aus Funktion zurückgeben ?
 
Der Rückgabetyp ist doch typisiert, auf WAVEHDR. Und "WAVEHDR * Fn" == "WAVEHDR* Fn" == "WAVEHDR *Fn", auch so ne Eigenheit von C.

turboPASCAL 29. Aug 2009 15:22

Re: [C++] - Wie Pointer aus Funktion zurückgeben ?
 
Code:
WAVEHDR * GetWaveData(void)
{
    return __wavehdr;
}
So klappt es. Danke euch.

// Edit:
Leider hilft mir nun das umgeschreibe doch nichts...
Es bekomme das selbe Ergebnis wie vor 8h mit einer anderen (Delphi)Funktion. :stupid:

( muss wohl ein brainstorming fehler gewesen sein )

Medium 29. Aug 2009 15:25

Re: [C++] - Wie Pointer aus Funktion zurückgeben ?
 
Zitat:

Zitat von Dax
Der Rückgabetyp ist doch typisiert, auf WAVEHDR. Und "WAVEHDR * Fn" == "WAVEHDR* Fn" == "WAVEHDR *Fn", auch so ne Eigenheit von C.

:wall: Bis in die Puppen pennen vernebelt manchmal doch arg. Türlich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 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