我正在将第三方的应用程序与我的DLL集成。每次运行第三方软件时,都会多次创建和销毁DLL。
从我的DLL中,我需要认识到它是同一个第三方的运行还是创建我的另一个。有没有办法识别第三方软件的哪个进程创建了我?
答案 0 :(得分:2)
如果每次都卸载DLL,那么每次加载时都可能需要某种持久存储。如果调用应用程序不提供此信息,则DLL本身将需要执行该操作。
一种可能性是使用named shared memory。如果它不存在,则创建它,然后将其用作“标志”,以便知道在同一执行中再次调用它。当进程退出时,它将被销毁。当然,这需要考虑安全问题。另一个进程可能会创建该共享内存,以使您的DLL“认为”它在实际上是第一次调用时在同一次运行中再次被调用。