2017-05-16 11 views
0

私は大学のための基本的なDAWに取り組んでいます。私はすべての関数を動作させていますが、それらをすべて別々の関数に置き、main関数でそれらを呼び出す必要があります。私は表現結果のエラーを未使用にしています。どんな助けもありがとう。最初のブロックは私の主な機能です。メインコードに.hpp関数を呼び出す際のエラー

#include <string> 
#include <iostream> 
#include <cmath> 
extern "C" 
{ 
#include <sndfile.h> 
} 
using namespace std; 
#include "LoadFile.hpp" 
#include "SaveFile.hpp" 
#include "Amplify.hpp" 
#include "Delay.hpp" 
#include "Distortion.hpp" 
#include "FadeIn.hpp" 




int main() 

{ 

    int choice; 

    cout << "What would you like to do? \n 1. Load File \n 2. Save File \n 3. Amplify \n 4. Fade In \n 5. Distortion \n 6. Delay \n 7. Close Program \n"; 
    cin >> choice; 

    if (choice == 1) 
    { 
     LoadFile; 
    } 

    else if (choice == 2) 
    { 
     SaveFile; 
    } 

    else if (choice == 3) 
    { 
     Amplify; 
    } 

    else if (choice == 4) 
    { 
     FadeIn; 
    } 

    else if (choice == 5) 
    { 
     Distortion; 
    } 
    else if (choice == 6) 
    { 
     Delay; 
    } 

    else if (choice == 7) 
    { 

    } 
    else 
    { 
     cout << "Sorry, that isn't an option"; 
    } 


    return 0; 
} 

これらは私の.cppファイルと.HPPファイルのカップルです。

#include "SaveFile.hpp" 
#include <string> 
#include <iostream> 
#include <cmath> 
extern "C" 
{ 
#include <sndfile.h> 
} 
using namespace std; 
#include "LoadFile.hpp" 


void SaveFile (double *x, int length) 
{ 
    int samplerate2; 

    cout << "Please enter save path. \n"; 
    string strSPath2; 
    cin >> strSPath2; 
    const char *SPath2 = strSPath2.c_str(); 
    cout << "Enter samplerate. \n"; 
    cin >> samplerate2; 

    SF_INFO FInfo2; 
    FInfo2.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; 
    FInfo2.samplerate = samplerate2; 
    FInfo2.channels = 1; 
    SNDFILE *SFile2 = sf_open(SPath2, SFM_WRITE, &FInfo2); 
    sf_writef_double(SFile2, x, length); 
    sf_write_sync(SFile2); 
    sf_close(SFile2); 
    cout << "Save successful \n"; 


    delete [] x; 
} 

対応する.hpp。

void SaveFile(double *x, int length); 
+0

正確なエラーコンパイラのショーを提供してください。可能であれば、どのコンパイラがどのオプションであるかについても言及します。 –

+1

最初に私に当たるのは、あなたの 'main'が意図した機能を呼び出すように見えないということです。あなたは関数の名前だけを言及しています。関数の名前はおそらくアドレスを取るように機能し、何も割り当てられていないので未使用の式です。あなたが 'SaveFile'で自分自身を示したように、関数に提供される引数があります。したがって、 'main'はそれらの引数を提供しなければなりません。 –

+0

コードは正しくビルドされますが、オプションを選択すると終了します。それぞれの関数 '式の結果は未使用'の隣に表示されます。 –

答えて

1

機能が不適切に呼び出されているようです。

あなたはこのような関数を呼び出す:あなたはこのようにそれを呼び出す必要があり、一方、 ... LoadFileを:LoadFile()あなたがメインで、これらの機能にあなたのパラメータを渡す必要があります...

を。 たとえば、SaveFile()に電話する場合は、適切なパラメータを渡す必要があります。 SaveFile() hpp定義を使用する場合は、double *xint lengthSaveFile()に渡す必要があります。

あなたはメインにある他の機能と同じことをする必要があると思います。

関連する問題