2013-11-25 31 views
6

我正在改進一個DLL模塊,它充當Windows應用程序的一種插件。如何在DLL中找到哪個進程加載它?

這個插件與各種版本的單一軟件行兼容。 現在,對於某個功能,我必須訪問父軟件的配置文件。由於不同版本的軟件在不同的地方有這些版本,我必須找出哪個版本加載DLL。 通過進程可執行文件名稱(即abc_v1.exe,abc_v2.exe,abc_v3.exe)很容易識別單獨的版本。

有沒有辦法獲得加載DLL的進程的名稱?我正在使用C++與一些基本的WinAPI命令,但不是ATL,MFC或類似的。

目前我使用它自己的SDK函數輪詢父軟件,但是這需要打開連接。根據配置文件的內容,DLL不需要打開連接,所以我想知道在建立通信之前哪個版本加載了它。

回答

5

呼叫GetModuleFileName作爲模塊句柄通過NULL。來自documentation

正在請求路徑的加載模塊的句柄。如果此參數爲NULL,則GetModuleFileName將檢索當前進程的可執行文件的路徑。

+0

謝謝。這工作完美。 –

相關問題