|
分類:[C/C++]
OS:XP
開発環境:VC++2008
こんにちは。
現在以下のようなプログラムを組んでいるのですが、最初に定義したvector構造体のリンクが取れずにLNK2001が出てしまいます
error LNK2001: 外部シンボル ""private: static class std::vector<struct _name2Value *,class std::allocator<struct _name2Value *> > name2::dirPath" (?dirPath@name2@@0V?$vector@PAU_name2Value@@V?$allocator@PAU_name2Value@@@std@@@std@@A)" は未解決です。 TestVector.obj TestVector
このエラーについて心当たりがある方はいらっしゃいますでしょうか?
struct _name2Value
{
wchar_t *str;
long no;
_name2Value(int size)
{
str = (wchar_t *)malloc(size);
no = 0;
}
~_name2Value()
{
free(str);
}
// コピーコンストラクタ
_name2Value(const _name2Value& re_n2v)
{
no = re_n2v.no; // 値をコピー
str = new wchar_t[1024];
wcsncpy(str,re_n2v.str,1024);
}
};
class name2
{
static std::vector<_name2Value*> dirPath;
static std::vector<_name2Value*> name2Value;
public:
name2()
{
dirPath.clear();
name2Value.clear();
}
~name2()
{
if (dirPath.size())
{
for(size_t i = 0 ; i < dirPath.size() ; i++)
{
delete dirPath[i];
}
}
dirPath.clear();
if (name2Value.size())
{
for(size_t i = 0 ; i < name2Value.size() ; i++)
{
delete name2Value[i];
}
}
name2Value.clear();
}
// 要素を追加
static void dirPathAdd(_name2Value addvalue);
static void name2ValueAdd(_name2Value addvalue);
};
// 要素を追加
void name2::dirPathAdd(_name2Value addvalue)
{
dirPath.push_back(&addvalue);
}
void name2::name2ValueAdd(_name2Value addvalue)
{
name2Value.push_back(&addvalue);
}
|