Hallo Programmierer,
ich möchte ein Windowsprogramm schreiben, das dem Benutzer 36 verschiedene *.wav - Files jeweils genau einmal über die Soundkarte vorspielt und eine Bewertung der Lautstärkeempfindung vom Benutzer abfragt und in einem Textfile speichert.
Ich habe eine MFC-Anwendung mit Visual C++ 6.0 begonnen, aber ein paar Probleme damit:
Mein Ansatz für die nur einmalige zufällige Darbietung ist folgender:
Dieses Array habe ich als globale Variable direkt unter die Includes meiner ...Dlg.cpp geschrieben, um bei jedem erneuten Aufruf der Funktion "Play" die Flags beizubehalten. (nach erfolgter Eingabe der Lautstärkeempfindung soll der Benutzer den Button "Play" drücken)
Leider kennt die folgende Funktion "Play" die Variable Signals[] nicht mehr:
Habt ihr eine Idee, wo oder wie ich das Array Signals defenieren oder initialisieren muß, damit es in der ganzen Anwendung bekannt und zugänglich ist ?
Über eure Hilfe würde ich mich sehr freuen, bin gespannt auf intelligentere Ansätze als meinen eigenen ;-)
Ich habe bei den MFC noch nicht verstanden, welche Klasse während der "Lebensdauer" der Anwendung unverändert existent bleibt. Denn dort müßte ich doch eigentlich das Array einmal initialisieren können um von allen Funktionsaufrufen (z.B. nach einem Buttenclick) darauf zugreifen zu können.
Vielen Dank
Grüße, BEN
ich möchte ein Windowsprogramm schreiben, das dem Benutzer 36 verschiedene *.wav - Files jeweils genau einmal über die Soundkarte vorspielt und eine Bewertung der Lautstärkeempfindung vom Benutzer abfragt und in einem Textfile speichert.
Ich habe eine MFC-Anwendung mit Visual C++ 6.0 begonnen, aber ein paar Probleme damit:
Mein Ansatz für die nur einmalige zufällige Darbietung ist folgender:
Code:
// Array zum Auswählen der Signale mit srand() und zum Speichern des "schon gespielt-Flags
int Signals[36] = { 0,1,2,3,4,5,..... usw. 35};
Dieses Array habe ich als globale Variable direkt unter die Includes meiner ...Dlg.cpp geschrieben, um bei jedem erneuten Aufruf der Funktion "Play" die Flags beizubehalten. (nach erfolgter Eingabe der Lautstärkeempfindung soll der Benutzer den Button "Play" drücken)
Leider kennt die folgende Funktion "Play" die Variable Signals[] nicht mehr:
Code:
int CDialogeDlg::Play()
{
int Zufall;
do // solange Zufallszahlen produzieren
{ srand( time(NULL) ); // Initialisiert Zufallszahl Generator
Zufall = rand()%36;
}
while (Signals[Zufall] == 99); // bis ein Arrayeintrag kommt, der noch nicht war
int SignalsInhalt = Signals[Zufall]; // Array Signals auslesen
switch( SignalsInhalt)
{
case 0 :
{
PlaySound("D:\\ ... .wav ... NULL, SND_FILENAME);
Signals[0] = 99; // nach einmaligem abspielen auf 99 setzen
// der Wert 99 ist mein Flag als Zeichen, daß der Arrayeintrag schon gespielt wurde.
}
break;
case 1 : .... usw.
Habt ihr eine Idee, wo oder wie ich das Array Signals defenieren oder initialisieren muß, damit es in der ganzen Anwendung bekannt und zugänglich ist ?
Über eure Hilfe würde ich mich sehr freuen, bin gespannt auf intelligentere Ansätze als meinen eigenen ;-)
Ich habe bei den MFC noch nicht verstanden, welche Klasse während der "Lebensdauer" der Anwendung unverändert existent bleibt. Denn dort müßte ich doch eigentlich das Array einmal initialisieren können um von allen Funktionsaufrufen (z.B. nach einem Buttenclick) darauf zugreifen zu können.
Vielen Dank
Grüße, BEN
Zuletzt bearbeitet: