4

スタンドアロンの実行可能ファイルに含めたいテキスト ファイルがあります。ファイル自体は別のディレクトリのソース管理にあり、コンパイル時にテキスト ファイルを実行可能ファイルに追加したいと考えています。

リソースについて少し読んでいますが、ファイルを追加する最良の方法が正確にはわかりません。また、実行中にファイルを参照して読み取る方法もわかりません。

プロジェクトは静的にリンクされた MFC で、vs2010 を使用しています。どんな助けでも大歓迎です。

4

1 に答える 1

5

ファイルをリソースとしてアプリケーションに追加するだけです。次のようなコードで「読み取る」ことができます。

/* the ID is whatever ID you choose to give the resource. The "type" is
 * also something you choose. It will most likely be something like "TEXTFILE"
 * or somesuch. But anything works.
 */
HRSRC hRes = FindResource(NULL, <ID of your resource>, _T("<type>")); 
HGLOBAL hGlobal = NULL;
DWORD dwTextSize = 0;

if(hRes != NULL)
{
    /* Load the resource */
    hGlobal = LoadResource(NULL, hRes);

    /* Get the size of the resource in bytes (i.e. the size of the text file) */
    dwTextSize = SizeofResource(NULL, hRes);
}

if(hGlobal != NULL)
{ 
    /* I use const char* since I assume that your text file is saved as ASCII. If
     * it is saved as UNICODE adjust to use const WCHAR* instead but remember 
     * that dwTextSize is the size of the memory buffer _in bytes_).
     */
    const char *lpszText = (const char *)LockResource(hGlobal);

    /* at this point, lpszText points to a block of memory from which you can
     * read dwTextSize bytes of data. You *CANNOT* modify this memory.
     */
    ... whatever ...
}
于 2012-11-16T05:29:25.443 に答える