【问题标题】:Get BPL File Name获取 BPL 文件名
【发布时间】:2009-10-28 01:49:30
【问题描述】:

是否可以从 BPL 中获得自己的文件名?例如C:\foo\bar.bpl

(动态加载和delphi7,如果重要的话)

【问题讨论】:

    标签: delphi bpl


    【解决方案1】:

    致电GetModuleFileName。对于模块句柄,使用SysInit.HInstance。传递零将为您提供主机 EXE 的文件名,也称为ParamStr(0)

    【讨论】:

      【解决方案2】:

      GetModuleFileName 的使用示例:

      function  DLLFileName : string;
      begin
        SetLength(Result,MAX_PATH);
        GetModuleFileName(HInstance,PCHar(Result),MAX_PATH);
        SetLength(Result,StrLen(PChar(Result)));
      end;
      

      【讨论】:

      • 最后两行可以合二为一,因为GetModuleFileName()返回的是复制的字符数,所以StrLen()不是必须的。
      • 更简单:Result := PChar(Result);
      • @dummzeuch:看起来更容易,是的。无论如何在内部调用相当于StrLen()。对于那些渴望最小和最快的代码的人......
      猜你喜欢
      • 2012-06-08
      • 1970-01-01
      • 2010-09-11
      • 2012-12-23
      • 1970-01-01
      • 2018-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多