1

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

我有一个关于更新资源的问题。MSDN描述了如何做到这一点,但有一个函数(BeginUpdateResource)需要 exe 或 dll 的文件名和资源。

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

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

4

1 回答 1

1

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

不过,如果您想尝试,只需让 DLL 将自己的路径传递给函数。

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

于 2011-02-25T15:22:58.700 回答