0

そのような形で...

#ifndef UNICODE
#define UNICODE 
#endif


#include <Windows.h>
#include <iostream>

class A
{
public:
    void makeFoo(TCHAR* output)
    {
        wcscpy(outputBuffer,TEXT("Hello world ♥"));
    }
private:
    static const int MAX_OUTPUT_SIZE=2000;  
    static TCHAR outputBuffer[MAX_OUTPUT_SIZE];
};


int main()
{
    TCHAR string[255];

    A example;

    example.makeFoo(string);

    MessageBox(0,string,0,0);

    system("Pause");
    return 0;
}

...リンクエラーが発生しました!

1> main.obj:エラーLNK2001:未解決の外部シンボル "private:static wchar_t * A :: outputBuffer"(?outputBuffer @ A @@ 0PA_WA)

4

2 に答える 2

3

どこにも定義を指定していないため、リンカーエラーが発生しますA::outputBuffer。これをファイルスコープに書き込むことで修正します。

TCHAR A::outputBuffer[A::MAX_OUTPUT_SIZE];

そのバッファは初期化されていないため、の値stringは予期しないものです。makeFooその引数には何もしません。また、バッファを手動で初期化することもありません。したがって、何でも含めることができます(「ゴミ」)。

于 2012-08-02T14:32:46.663 に答える
0

追加:

TCHAR A::outputBuffer[A::MAX_OUTPUT_SIZE];

上記main()

于 2012-08-02T14:33:03.147 に答える