如何从这个DLL修改DLL中的资源?

时间:2011-02-21 11:36:36

标签: visual-c++ dll resources resource-dll

我正在使用VC ++和ATL编写IE的附加组件。 这是一个简单的DLL,我有一个文本文件,我用作资源。 This回答帮助我做到了这一点。

我有关于更新资源的问题。 MSDN描述了如何执行此操作,但有一个函数(BeginUpdateResource)需要带有资源的exe或dll的文件名。

是否可以更新我的DLL 中的资源我的DLL?我可以很容易地阅读它,但要更新我必须提供DLL的名称。有必要吗?

此外,如果我不提供我的DLL的完整路径,它会在桌面上查找文件,而不是存储DLL的位置。我不知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

我从未尝试过这样做,所以我可能错了,但如果DLL可以更新自己的资源,我会感到惊讶。如果加载了DLL文件,那么我希望锁定包含DLL的文件以便读取和写入该文件的尝试失败。

但是,如果你想尝试,只需让DLL传递它自己的函数路径。

您可以使用GetModuleFileName获取DLL的路径,方法是将DLL的HINSTANCE / HMODULE(它们现在与第一个参数相同)传递给第一个参数。 HINSTNACE / HMODULE将在DllMain传递给您。