[C++] Funktionsaufruf nicht möglich...

daDom

Erfahrenes Mitglied
Hallo zusammen.

Mein Problem:

Ich habe eine eigene Funktion "GenSQLTwo" geschrieben, deren Kopf wie folgt aussieht:
Code:
AnsiString  GenSQLTwo(AnsiString FName, FGruppe, FZustand, FHersteller)

Aus einer anderen Funktion rufe ich diese jetzt auf, indem ich mit [STRG]+[Leertaste] die möglichen Funktionen aufliste, die zur Verfügung stehen.

Die Funktion "GenSQLTwo" taucht zwar auf, aber als "GenSQLTwo int(...)" anstatt "GenSQLTwo AnsiString(...)".
Wenn ich dann die Klammer öffne, in die die Parameter, die ich im Funktionskopf deklariert habe ("AnsiString FName (...)"), eingefügt werden sollten, kommt anstatt dieser Angaben ("AnsiString FName (...)") nur "kein Prototyp verfügbar".

Was kann ich tun, damit ich auf die Funktion zugreifen kann?

Hiiiiiiilfeeeeee :confused:

dom
 
Hallo, du musst vor jede Variable in dem Funktionskopf den Typ schreiben, also auch vor FGruppe und so, nicht nur vor FName. (oder is das nur ein Schreibfehler von dir?)

mfg, andreas gierisch
 
Achso, das war nur eine Probe, die ich zum Testen durchgeführt habe...
Wollte mal sehen, ob es auch mit einmaliger Deklaration geht, aber ist ja auch unlogisch(...).

Ändere den Beitrag auf:

Code:
AnsiString  GenSQLTwo(AnsiString FName, AnsiString  FGruppe, AnsiString  FZustand, AnsiString  FHersteller)

Aber woran kanns noch liegen?
 
Zuletzt bearbeitet:
Musst du mal en bissl mehr Code posten. Am besten den genauen Funktionskopf und die genaue aufrufende Zeile, so wie du's im Quelltext stehen hast.

Hast du vielleicht den Aufruf und die Funktion in unterschiedlichen Dateien stehen?
 
Zuletzt bearbeitet:
moin


Du bist sicher das du für die Funktion nciht zwei Prototypen hast?
Und wie läuft das mit dem Anzeigen lassen der Funktionen?


mfg
umbrasaxum
 
Also ich habe eine zweite Unit, in der ich zu Übersichtszwecken alle Funktionen seperat aufgeführt habe.

Die zweite sieht im Header so aus(der teil, der Unit 1 mit einbezieht):
Code:
#include "AnkaufServer_p1_u2.h"
#include "AnkaufServer_p1_u1.h"
Dazu sei gesagt, dass der Zugriff von der einen in die andere Unit einwandfrei funktioniert!

Der Kopfteil der Funktion sieht so aus:
Code:
AnsiString GenSQLTwo(AnsiString FName, AnsiString FGruppe, AnsiString FZustand, AnsiString FHersteller)
{
...
}

Der Aufruf erfolgt ebenfalls in Unit2 in einer Funktion, die aus Unit 1 aus aufgerufen wird:
Code:
sqlcode = GenSQLTwo(FName, FGruppe, FZustand, FHersteller);

Soweit kann ich keine Fehler feststellen...
Woran soll das liegen?
 
moin



Ich versteh zwar immernoch nciht wie du dir den Typ deiner Funktion anzeigen lässt, aber vielleicht ist der Konstruktor der AnsiString Klasse vom Typ int, oder irgendwas in der Richtung das dazu führt.
Da AnsiString eine Borlanderfindung ist, kann ich das nciht nachprüfen.


mfg
umbrasaxum
 
ich kann eigentlich auch keine fehler entdecken, hast du vielleicht aus Versehen zwei Funktionen mit dem gleichen Namen erstellt, die müssen nicht einmal in der selben datei stehen?

@umbrasaxum:

der Typ wird automatisch angezeigt, wenn ma den Funktionsnamen eintippt und dann die Klammer öffnet. (Da öffnet sich eine kleine Infoline mit Rückgabetyp, erwarteten Parametern und so) --> das is zumindest bei borland so, wie das bei microsoft ist, weiß ich nicht.
 
moin


Achsooo, also kommt der Fehler in der Entwicklungsumgebung vor und nciht im "fertigen" Programm.
Bei Microsoft gibbet das auch.


mfg
umbrasaxum
 
So, ich zeig euch mal fix die autom. Typanzeige:

(Obwohl mit AnsiString deklariert, wird int angezeigt...)
 

Anhänge

  • c++_func_err.GIF
    c++_func_err.GIF
    17,5 KB · Aufrufe: 46
Zurück