Hilfe bei der Parameterübergabe zwischen Funktionen



  • Hallo allerseits,
    ich hoffe ich bin hier richtig.

    Und zwar suche ich etwas Rat, ich habe schon seit einiger Zeit mit fMod (ein Soundsystem) gearbeitet. Allerdings immer nur in Konsolenanwendungen und da es dort doch recht begrenzte Möglichkeiten von wegen Benutzerfreundlichkeit und grafische Oberfläche gibt, wollte ich probieren eine einfache WIndows-Anwendung mit fMod-Funktionalität zu schreiben.
    Ich benutze MSVC++ 2008 Express und habe ein Windows-Forms Projekt erstellt, wie gewohnt alles included und definiert, so.

    Jetzt wollte ich anfangen mit einem Knopf der eine Datei aus einem in einem Textfeld angegebenen Pfad lädt. Also schön Button eingefügt, benannt usw. Dann in den Quellcode gegangen und in die Funktion für den Button alles geschrieben wie ich normalerweise einen Soundstream erstelle und so.

    Vorher habe ich halt das System von fMod-Initialisiert und erstellt, etwa so:

    FMOD::System    *fm_system;
    			FMOD::Channel   *channel = 0;
    			FMOD::Sound		*sound1 = 0;
    			FMOD::DSP       *dsp_parameq1 = 0;
    			FMOD::DSP       *dsp_parameq2 = 0;
    			FMOD::DSP       *dsp_parameq3 = 0;
    			FMOD::DSP       *dsp_parameq4 = 0;
    			FMOD_RESULT      result;
    			int              fm_key;
    			unsigned int     fm_version;
    
    			result = FMOD::System_Create(&fm_system);
    			ERRCHECK(result);
    

    ...
    usw.

    Das habe ich in dem Konstruktor des Fensters Form1(void) getan, der erschien mir da am ähnlichsten zur Main-Funktion und somit am geeignetsten.

    Jetzt habe ich kompiliert und bin auf mein Problem aufmerksam geworden. In der Funktion vom Button kennt er all' die Sachen die ich in dem Konstruktor definiert und initialisiert habe ja gar nicht.

    Meine Frage jetzt, da ich mit Windows-Programmierung und diesen Forms bisher nichts gemacht habe: Wie regelt man sowas? Ich müsste ja eigentlich alle Sachen dann an die jeweiligen Funktionen übergeben. Dann müsste ich aber den ganzen schon von MSVCPP erstellen Code ummodellieren, damit ich da auch Rückgabewerte und so anstatt void kriege. Ich kann ja schließlich nicht alles global definieren, oder etwa doch? Wollte ich jedenfalls nicht. Wie handhabt man so etwas?
    Wär für Hilfe sehr dankbar.

    /Daniel



  • Hi !

    Du kannst auch in Windows strukturiert/objektorientiert programmieren.
    ( Aufteilung in Header- und Quellcodedatei )
    Du inkludierst dann die Headerdateien und erzeugst die Strukturen/Objekte dort, wo sie gebraucht werden ( Lokal auf dem Stack, Dateiübergreifend auf dem Heap etc ).
    Windows Forms ist doch C# ne. Aber da ist das prinzipiell auch so.
    Gruß,
    B.B.


Anmelden zum Antworten