在visualc++中删除位图资源

Deleting a bitmap resource in Visual C++

本文关键字:位图 资源 删除 visualc++      更新时间:2023-10-16

我试图通过代码删除资源位图,我有麻烦。跟谷歌聊了几个小时。下面是代码:

int result; 
HANDLE h;
h = BeginUpdateResource(L"C:\Users\Steve\Desktop\stub.exe", FALSE);
result = UpdateResource(h, RT_BITMAP, MAKEINTRESOURCE(IDB_BITMAP2), MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), NULL, 0); 
EndUpdateResource(h, FALSE);

当我调试时,变量"result"最终为NULL,这意味着更新没有通过。我是不是漏掉了一些非常基本的东西?

好了,我知道哪里出了问题了。首先,我使用了"GetLastError()"命令来帮助简化可能性。它给了我一个错误0x57,这意味着ERROR_INVALID_PARAMETER。

当我进行更多的实验时,似乎在语言参数中,我列出了"MAKELANGID(LANG_ENGLISH, subang_english_us)"而不是"MAKELANGID(LANG_ENGLISH, subang_english_us)"。显然,资源关心您使用的语言,即使它是像位图这样不使用语言的东西。

一旦我输入了LANG_ENGLISH参数,它就工作了。您可以通过检查资源用于构建的.rc的文本来查找正在使用的语言。