Variable abfragen
-
Hallo!
Hab so eine Frage - kann man irgendwie abfragen, ob eine Variable schon initialisiert ist oder nicht?
Ich hab eine Function, wo es möglich ist, 3 oder 2 Parameter zu übergeben, also 3 Parameter ist optional. Dies Parameter ist char * und wenn da nichts übergeben wird, ist diese Variable nicht initialisiert. Und ich möchte es in einer if-kontrollstruktur diese Variable abfragen. Und wenn die Variable kein Wert in sich hat, stürtzt meine Anwendung - ist nicht schön...
-
dann übergib NULL!
-
Es geht nicht...
-
Geht nicht gibts nicht.
Zeig mal deinen Code. (Also aus dem Header und wie du aufrufst.)
-
Vor allem ist
romanovi4 schrieb:
Es geht nicht...
nicht wirklich aufschlussreich wenn wir dir helfen sollen.
-
Leider kann ich denn Code nicht Posten - es ist viel zu viel, und vor allem die Code von DLL, die zerlegt Befehle und übergibt die Parameter an Functionen hab ich nicht - und damit kann ich denn Wert nicht auf NULL setzten.
Tja, ich gehe andere Wege dann - Danke euch!
-
moment, du gibst einfach auf?
Ich mein ich will dich nicht abhalten aber zeig doch mal deine Aufrufe oder irgendwas. Wenn die DLLs professionell sind wird da wohl kaum der Fehler drin liegen sondern eher in den aufrufen oder so. Oder ist alles sooo geheim, dass du nicht einmal Funktionsaufrufe zeigen kannst?
-
Nö
es wird so mal aufgerufen:
... (( *cmpConnection::theServer).* (cmpConnection::theServer-> ildMethodReg[mx].method))(arg); ...
method steht für Name der Function...
Aber es ist schon gemacht - geht schnell
-
Ich glaube, du hast nen Klammerfehler.
Wow ist das ein kryptischer Code.Ich meinte vorhin die Funktionsdeklaration. Denn du kannst da theoretisch einen Standardwert vorgeben.
Also, zeig mal bitte den Kopf von method. (Was die alles macht musste schon gar nicht mehr zeigen.)
-
Hier ist die Deklaration:
void GetUtterance(char *wavefile, char *callID, char *dtmf, void * unused2);
char *dtmf - problemzone
P.S. Code hab nicht ich geschrieben - ich muss erweitern - komm selber aus VB-Ecke. C++ ist total schwer...
-
Du kannst folgendes machen:
void GetUtterance(char *wavefile, char *callID, char *dtmf = NULL, void * unused2 = NULL);
Dann steht da automatisch NULL drin, wenn du nichts angibst. Das geht aber NUR mit den letzten Parametern einer Funktion, du darfst Pflicht und Optional nicht mischen!
Prüfen kannst du das dann mit
if (dtmf) { // dtmf ist gefüllt, alles prima }
Jetzt nochmal zu deinem Aufruf:
Method hat ja mehrere Parameter, aber bei dem Beispiel, was du uns zeigst hat es nichtmal Klammern...
Es kann aber auch gut sein, dass ich den Code einfach nicht verstehe, der ist ja C++ in seiner schlimmsten Kompliziertheit.
-
DAnke!
-
na siehste geht doch!
Machen jetzt alle was mit Wavefiles und vitual Keyboards??
-
Wusste nicht das ein Parameter auch optional ist obwohl man keine Vorgabe macht.
Sollte ja eigentlich ein Compilerfehler kommen.
-
Wundert mich auch sehr.
Hast du den Code vom Aufruf verstanden?