- PR -

静的メンバ変数の初期化をストリングテーブルからしたい

1
投稿者投稿内容
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2008-01-31 17:26
お世話になっております。

現在VC++を使って開発しています。
静的メンバ変数の初期化をストリングテーブルからできる方法というのは存在するのでしょうか?

たとえば、

test1.h

class A
{
public:
static const CString m_test;
}

test1.cpp

const CString A::m_test("test");

このとき、testの代わりにIDS_TEST1などストリングテーブルから文字列を取得して
初期化する方法はないでしょうか?

以上よろしくお願いします。
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-01-31 18:33
同じように静的関数を宣言しておき
初期化コードの位置にて、呼び出せば良いのでは?

コード:
static LPWSTR GetStringTableValue(int resource_id)
{
    int len = 256;
    LPWSTR lpStr = (LPWSTR)new char[len];
    LoadString( NULL, resource_id, lpStr, len);

    return lpStr;
};
const CString A::m_test(GetStringTableValue(ID_STRING));



#かなりてきとーに書いたコードですので、細かい突っ込みはご遠慮。
1

スキルアップ/キャリアアップ(JOB@IT)