هل يمكن لـ Windows dll استرداد اسم الملف الخاص به؟

StackOverflow https://stackoverflow.com/questions/2043

  •  08-06-2019
  •  | 
  •  

سؤال

يتمتع ملف 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;

بالرغم من ذلك، لم يتم اختباره، فقد مر بعض الوقت منذ أن عملت مع دلفي :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top