我正在使用VC ++和ATL编写IE的附加组件。 这是一个简单的DLL,我有一个文本文件,我用作资源。 This回答帮助我做到了这一点。
我有关于更新资源的问题。 MSDN描述了如何执行此操作,但有一个函数(BeginUpdateResource)需要带有资源的exe或dll的文件名。
是否可以更新我的DLL 中的资源我的DLL?我可以很容易地阅读它,但要更新我必须提供DLL的名称。有必要吗?
此外,如果我不提供我的DLL的完整路径,它会在桌面上查找文件,而不是存储DLL的位置。我不知道为什么会这样。
答案 0 :(得分:1)
我从未尝试过这样做,所以我可能错了,但如果DLL可以更新自己的资源,我会感到惊讶。如果加载了DLL文件,那么我希望锁定包含DLL的文件以便读取和写入该文件的尝试失败。
但是,如果你想尝试,只需让DLL传递它自己的函数路径。
您可以使用GetModuleFileName获取DLL的路径,方法是将DLL的HINSTANCE / HMODULE(它们现在与第一个参数相同)传递给第一个参数。 HINSTNACE / HMODULE将在DllMain传递给您。