最近同様のトピックを作成したことは知っていますが、私の質問は少し異なります。
これを行うことは合法ですか:
1)
CORBA::WString_var value;
const ::CORBA::WChar* v = L"ąśżźćłóń";
value = CORBA::wstring_dup(value);
2)
class WCharStuff
{
private:
CORBA::WString_var value;
public:
void setVal(const ::CORBA::WChar* val)
{
this->value = CORBA::wstring_dup(value);
}
::CORBA::WChar* getVal()
{
return CORBA::wstring_dup(this->value.in());
}
};
WCharStuff obj;
const wchar_t *v = L"ąśżźćłóń";
obj.setVal(v);
3)
class WCharStuff
{
private:
CORBA::WString_var value;
public:
void setVal(const wchar_t* val)
{
this->value = CORBA::wstring_dup(val);
}
::CORBA::WChar* getVal()
{
return CORBA::wstring_dup(this->value.in());
}
};
WCharStuff obj;
CORBA::WChar* v = L"ąśżźćłóń";
obj.setVal(v);
その方法ですべて問題ありませんか (メモリ リークなど)? 必要な文字はąśżźćłóńę と ĄŚŻŹĆŁÓŃĘだけなので、ワイド文字列を使用します。