1

リソースに基づいた簡単なコンフィギュレータープログラムを作成したいと思います。WindowsAPI関数を使用してstub.exeのリソースを更新します。アプリケーションはエラーを表示しませんが、リソースは追加されません(exeファイルが破損する場合があります!)。ResourceHackerでstub.exeを開くと、リソースがありません。

私のコードは次のとおりです。

#include <Windows.h>

#define LANGUAGEID 1033

HANDLE hUpdate;
char szStubPath[MAX_PATH];
char DeadCode[] = "0xDEADC0DE";
unsigned int error = 0;

int main()
{

    GetCurrentDirectory(MAX_PATH, szStubPath);
    lstrcat(szStubPath, "\\stub.exe");

    hUpdate = BeginUpdateResource(szStubPath, FALSE);
    if(hUpdate == NULL)
    {
        MessageBox(0, "BeginUpdateResource failed.", 0, MB_OK+MB_ICONERROR);
        error = 1;
    }
    if(UpdateResource(hUpdate, RT_STRING, TEXT("CURRENT"), LANGUAGEID, &DeadCode, 11) == FALSE)
    {
        MessageBox(0, "UpdateResource failed.", 0, MB_OK+MB_ICONERROR);
        error = 1;
    }
    if(EndUpdateResource(hUpdate, FALSE) == FALSE)
    {
        MessageBox(0, "EndUpdateResource failed.", 0, MB_OK+MB_ICONERROR);
        error = 1;
    }

    if(error == 0)
    {
        MessageBox(0, "stub.exe - Resource added.", "Info", 0);
        return EXIT_SUCCESS;
    }
    else
    {
        MessageBox(0, "stub.exe - Adding resource failed.", "Info", 0);
        return EXIT_FAILURE;
    }
}

エラーはありませんが、リソースが追加されていません(exeファイルが破損することがあります)。なぜですか?なにが問題ですか?

編集: stub.exeがMASM32で記述され、config.exeがVisualC++で記述されているという情報を追加したいと思います。異なるプログラミング言語で問題が発生する可能性はありますか?

よろしく、デビッド

4

0 に答える 0