क्या एक विंडोज़ डीएल अपना खुद का फाइलनाम पुनर्प्राप्त कर सकता है?

एक विंडोज एक्सई फ़ाइल में कमांड स्ट्रिंग तक पहुंच है जिसने इसे पथ और फ़ाइल नाम सहित शामिल किया है। जैसे। <�कोड> सी: \ MyApp \ MyApp.exe --help ।

लेकिन यह LoadLibrary के माध्यम से लागू एक डीएल के लिए ऐसा नहीं है। क्या किसी को यह पता लगाने के लिए एक तरीका है कि उसका पथ और फ़ाइल नाम क्या है?

विशेष रूप से मुझे डेल्फी समाधान में दिलचस्पी है, लेकिन मुझे संदेह है कि उत्तर किसी भी भाषा के लिए काफी समान होगा।

0
जोड़ा संपादित
विचारों: 1

1 उत्तर

मुझे लगता है कि आप 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;

हालांकि, मैंने कुछ समय बाद डेल्फी के साथ काम किया था :)

0
जोड़ा
SysUtils GetModuleName है - पहले से ही डी 7 के बाद से, मुझे लगता है।
जोड़ा लेखक Ondrej Kelle, स्रोत
डेल्फी एक्सई के रूप में, GetModuleName को System.pas इकाई में परिभाषित किया गया है
जोड़ा लेखक menjaraz, स्रोत
डेल्फी 6 में, MAX_PATH की परिभाषा के लिए उपयोग खंड में Windows आवश्यक है।
जोड़ा लेखक w5m, स्रोत