请各位高手指教,我想利用DELPHI自动编译的版本号来做程序自动更新下载,我的程序中有EXE和DPL,
我现在用GetFileVersionInfo函数能提取出EXE的版本号,但是提取不出来BPL的版本号,请问BPL的版本号该怎么提啊???

解决方案 »

  1.   

    应该是一样的,试试这个:
    http://community.csdn.net/Expert/topic/4769/4769828.xml?temp=.4881861
      

  2.   

    //得到文件版本
    function GetVersionString(FileName: string): string;
    var
      VerInfoSize: DWORD;
      VerInfo: Pointer;
      VerValueSize: DWORD;
      Dummy: DWORD;
      VerValue: PVSFixedFileInfo;
    begin
      Result := '';
      VerInfoSize := GetFileVersionInfoSize(PChar(FileName), Dummy);
      if VerInfoSize = 0 then Exit;
      GetMem(VerInfo, VerInfoSize);
      GetFileVersionInfo(PChar(FileName), 0, VerInfoSize, VerInfo);
      VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);  Result := IntToStr(VerValue^.dwFileVersionMS shr 16) + '.' +
                IntToStr(VerValue^.dwFileVersionMS and $FFFF) + '.' +
                IntToStr(VerValue^.dwFileVersionLS shr 16) + '.' +
                IntToStr(VerValue^.dwFileVersionLS and $FFFF);
      FreeMem(VerInfo);
    end;
    可以取出bpl的版本号的啊测试代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(GetVersionString('d:\Program Files\Borland\Delphi7\Bin\applet70.bpl'));
    end;---------------------------
    Project1
    ---------------------------
    7.0.4.453
    ---------------------------
    OK   
    ---------------------------