【发布时间】:2011-03-13 16:47:27
【问题描述】:
我有一个应用程序正在加载一个包含全局 GetMessage 挂钩的回调函数的库。我得到了该过程并将其传递给 SetWindowsHookEx 以设置所有正在运行的线程。
问题是我希望 DLL 函数在某种情况下,比如按键,告诉原始应用程序退出,而不是所有应用程序。我能想到的唯一方法是在应用程序中创建一个窗口并让 DLL 调用 SendMessage(HWND_BROADCAST) 以发送应用程序识别退出的自定义消息。但我想验证这是否是最好的方法?
另一个问题也随之而来。假设我希望 DLL 执行一些一次性初始化,例如打开文件。如果我在 DllMain 中执行此操作,那么它似乎会执行多次,因为它被多次加载。这是解决这个问题吗?谢谢。
【问题讨论】: