Visual Studio 2008でプロジェクトを構築しようとしています。本当に気になるリンカーエラーが発生しています。私のアプリケーションは、ネイティブのANSI C++のみを使用するWin32コンソールアプリケーションです。ヘッダーファイルのクラスのプライベートメンバーとのリンカーエラー
これらはすべて同じパターンのリンカーエラーです。 リンカーエラーは、私自身のヘッダーファイルで定義したクラスのすべてのプライベート静的データメンバーに関連しています。
私はこれがおそらくC++の単純な事実であると推測しています。私はすでに認識していませんか?
例: SingleDelayのメンバクラスの関数定義内のSingleDelayのメンバは、ファイルDelays.cppにあります。 すなわち:
SingleDelay::tick(void *output, void *input, int nbufferFrames)<br>{
//.. code here<br>
x = dry * castInput + wet * castInput;<br>
}
エラー38エラーLNK2001:未解決の外部シンボル "プライベート:静的ダブルSingleDelay ::ドライ"(ドライ@ SingleDelay @@ 0NA?)Delays.obj遅延のSingleDelayのtestall
定義に.h:
class SingleDelay{
private:
static double dry; //% of dry signal<br>
static double wet; //% of wet signal<br>
static unsigned int delay; //Delay in milliseconds<br>
static int delayCell; //Index in the delayBuffer of the delay to add<br>
static double *delayBuffer; //Delay buffer is 1 second long at sample rate SAMPLE_RATE<br>
static unsigned int bufferCell; //Pointer to the current delay buffer cell<br>
public:
//Tick function
static void tick(void *output, void *input,int nBufferFrames);
//Set and Get functions
static void setSingleDelay(double tDry, double tWet, unsigned int tDelay);
static void setSingleDelay(void);
static void setDry(double tDry);
static void setWet(double tWet);
static void setDelay(unsigned int tDelay);
static double getDry(){ return dry;}
static double getWet(){ return wet;}
static unsigned int getDelay(){ return delay;}
static void initializeDelayBuffer(){
destroyDelayBuffer();
delayBuffer = new double[bufferLength];
}
static void destroyDelayBuffer(){
delete[ ] delayBuffer;
}
};
リンクエラーは表示されますか? –
Yehha、あなたは正確なリンカーエラーを投稿したいかもしれないので、理由が何であるかを提案することができます。 –
さて、私はそれに気付きました.2つのエラー例と関連するコードをいくつか追加しました。 – Rich