簡單問題:獲取動態庫本身路徑!


就是我一個程序調用動態庫,在動態庫里面獲取動態庫自己所在的路徑

8 个解决方案

#1


TCHAR buf[MAX_PATH]={0};
GetModuleFileName(NULL, buf, MAX_PATH);

#2


GetModuleFileName(NULL,   buf,   MAX_PATH); 取的是exe的路徑

GetModuleFileName的第一個參數用Dll的句柄就可以取Dll的路徑

#3


同意Yofoo的意見.

#4


恩樓上的方法也可以,還有另外一種方法
假如你了解PE格式
IMAGE_OPTIONAL_HEADER::DataDirectory[0].VirtualAddress
可以看作你這個DLL外部符號的RVA基址
IMAGE_EXPORT_DIRECTORY::Name字段存儲的就是你這個模塊的名稱的RVA

#5


靜態調用的動態庫,應該是和可執行文件同目錄的吧。動態調用的動態庫,不知道路徑也無法調用啊。

#6


2樓的可以,我試驗過

#7


dll的句柄從DllMain中得到,然后調用GetModuleFileName

#8


恩,學會了,謝謝各位

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com