هل يمكن لـ Windows dll استرداد اسم الملف الخاص به؟
سؤال
يتمتع ملف Windows exe بإمكانية الوصول إلى سلسلة الأوامر التي استدعته، بما في ذلك المسار واسم الملف.على سبيل المثال. C:\MyApp\MyApp.exe --help
.
ولكن هذا ليس هو الحال بالنسبة لملف dll الذي تم استدعاؤه عبر LoadLibrary
.هل يعرف أحد طريقة لملف dll لمعرفة مساره واسم الملف الخاص به؟
على وجه التحديد، أنا مهتم بحل دلفي، ولكني أظن أن الإجابة ستكون نفسها تقريبًا لأي لغة.
المحلول
أعتقد أنك تبحث عن GetModuleFileName.
http://www.swissdelphicenter.ch/torry/showcode.php?id=143:
{
If you are working on a DLL and are interested in the filename of the
DLL rather than the filename of the application, then you can use this function:
}
function GetModuleName: string;
var
szFileName: array[0..MAX_PATH] of Char;
begin
FillChar(szFileName, SizeOf(szFileName), #0);
GetModuleFileName(hInstance, szFileName, MAX_PATH);
Result := szFileName;
end;
بالرغم من ذلك، لم يتم اختباره، فقد مر بعض الوقت منذ أن عملت مع دلفي :)
لا تنتمي إلى StackOverflow