1

最近同様のトピックを作成したことは知っていますが、私の質問は少し異なります。

これを行うことは合法ですか:

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);

その方法ですべて問題ありませんか (メモリ リークなど)? 必要な文字はąśżźćłóńę と ĄŚŻŹĆŁÓŃĘだけなので、ワイド文字列を使用します。

4

0 に答える 0