0
Visual Studio 2015、コンソールアプリケーション。リソースを使って作業しようとしています。いくつかのpng画像をリソースに追加しました。 IDEからイメージをエクスポートしても問題ありません。今私はC++で同じことをしようとしています。ここにコードC++ファイルへのpngリソースのエクスポート
HRSRC myResource = FindResource(NULL, MAKEINTRESOURCE(SEND_MSG_PNG), L"PNG");
if (myResource == NULL)
{
fatal("Could not locate dialog box.");
return;
}
DWORD myResourceSize = SizeofResource(NULL, myResource);
log("Resource size %d", myResourceSize);
HGLOBAL myResourceData = LoadResource(NULL, myResource);
if (myResourceData == NULL)
{
fatal("Could not load dialog box.");
return;
}
void* lpResLock = LockResource(myResourceData);
if (lpResLock == NULL)
{
fatal("Could not lock dialog box.");
return;
}
FILE *fh;
fopen_s(&fh, "d:/test2.png", "w+");
fwrite(lpResLock, myResourceSize, 1, fh);
fclose(fh);
ここで問題が始まります。このファイルをIDE経由でエクスポートすると852バイトになります。 test.pngと呼ぶことができます。そして、test2.pngは1041バイトです。私は両方のファイルを16進エディタで開きました。最初の5バイトは89 50 4E 47 0Dと同じです。問題は、すべての視聴者がtest2.pngが破損していてtest.pngが正常であると言うことです。 test.png datatest2.pngどのように修正するのですか?