亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? dcdecompthread.pas

?? SrcDecompiler is about creating a Delphi program decompiler. The program is written for Delphi 4 or
?? PAS
字號(hào):
unit dcDecompThread;

interface

uses
  Classes, StatusForm, PEFile;

type
  TdcDecompThread = class(TThread)
  private
    FFileName: string;
    FDir: string;
    FStatusText: string;
    FStatus: TdcStatus;
    FPEFileClasses: array of TPEFile;
    procedure SyncSetStatus;
    function GetPEFileClass(Index: Integer): TPEFile;
    function GetPEFileClassCount: Integer;
  public
    {$IFDEF DebugView}
    constructor CreateDecomp(const FileName: string);
    {$ELSE}
    constructor CreateDecomp(const FileName, Dir: string);
    {$ENDIF DebugView}
    procedure SaveFiles;
    procedure SetStatus(Status: TdcStatus; const StatusText: string);
    procedure CheckTerminated;
    procedure AddPEFileClass(PEFileClass: TPEFile);
    procedure Execute; override;
    destructor Destroy; override;

    property Dir: string read FDir write FDir;
    property FileName: string read FFileName;
    property PEFileClasses[Index: Integer]: TPEFile read GetPEFileClass;
    property PEFileClassCount: Integer read GetPEFileClassCount;
  end;

implementation

uses
  dcUnits, Windows, SysUtils, dcDFMs, PEFileClass;

type
  ETerminated = class(Exception);

{ TdcDecompThread }

{$IFDEF DebugView}
constructor TdcDecompThread.CreateDecomp(const FileName: string);
{$ELSE}
constructor TdcDecompThread.CreateDecomp(const FileName, Dir: string);
{$ENDIF}
begin
  FFileName := FileName;
  {$IFNDEF DebugView}
  FDir := Dir;
  {$ENDIF}
  inherited Create(False);
end;

destructor TdcDecompThread.Destroy;
var
  I: Integer;
begin
  for I := 0 to PEFileClassCount -1 do
    PEFileClasses[I].Free;
  inherited Destroy;
end;

procedure TdcDecompThread.SaveFiles;
var
  I, J, K, L: Integer;
  Str: string;
begin
  for L := 0 to PEFileClassCount -1 do
    with TPEFileClass(PEFileClasses[L]) do
    begin
      for I := 0 to Units.Count -1 do
      begin
        if Units[I].ImportedUnit then Continue;
        // Insert a Enter if a line is more than 1000 characters
        Str := Units[I].UnitSrc.Text;
        J := 1;
        K := 1;
        while J < Length(Str) -1 do
        begin
          if (Str[J] = #13) and (Str[J+1] = #10) then
            K := J;
          if J - K > 1000 then
          begin
            for J := J downto K do
            begin
              if Str[J] = ' ' then
              begin
                Insert(#13#10, Str, J + 1);
                K := J + 1;
                Break;
              end;
              if J = K then
              begin
                Insert(#13#10, Str, K + 500);
                K := K + 500;
              end;
            end;
            J := K;
          end;
          Inc(J);
        end;
        Units[I].UnitSrc.Text := Str;

        // Create the untis.
        case Units[I].UnitType of
          utNormal: Units[I].UnitSrc.SaveToFile(Dir + '\' + Units[I].Name + '.pas');
          utProgram: Units[I].UnitSrc.SaveToFile(Dir + '\' + Units[I].Name + '.dpr');
        end;
      end;

      // Create the FFMT.OBJ file
      if HasFFMTObj then
        with TResourceStream.Create(HInstance, 'FfmtObjFile', RT_RCDATA) do
        try
          SaveToFile(Dir + '\FFMT.OBJ');
        finally
          Free;
        end;

      // Save the DFMs.
      for I := 0 to DFMs.Count -1 do
        with TdcDFM(DFMs.Items[I]) do
          if FormClass <> nil then
            SaveToFile(Dir + '\' + TUnit(FormClass.AUnit).Name + '.DFM')
          else
            SaveToFile(Dir + '\' + Resources[ResTypeIndex].Entries[ResIndex].Name + '.DFM');
    end;
end;

procedure TdcDecompThread.CheckTerminated;
begin
  if Terminated then
    raise ETerminated.Create('Cancelled');
end;

procedure TdcDecompThread.AddPEFileClass(PEFileClass: TPEFile);
begin
  SetLength(FPEFileClasses, Length(FPEFileClasses) +1);
  FPEFileClasses[High(FPEFileClasses)] := PEFileClass;
end;

procedure TdcDecompThread.Execute;
begin
  try
    SetStatus(sCanCancel, 'Decompiling the program.');
    TPEFileClass.CreateDecomp(FileName, Self);
    CheckTerminated;
    {$IFNDEF DebugView}
    SetStatus(sCanNotCancel, 'Saving the files.');
    SaveFiles;
    {$ENDIF DebugView}
    SetStatus(sFinished, 'Decompiling complete.');
  except
    on ETerminated do
      SetStatus(sCanceled, 'Cancelled.');
    on E: Exception do
      SetStatus(sError, Format('Error: %s, %s', [E.ClassName, E.Message]));
  end;
end;

procedure TdcDecompThread.SetStatus(Status: TdcStatus; const StatusText: string);
begin
  FStatus := Status;
  FStatusText := StatusText;
  Synchronize(SyncSetStatus);
end;

procedure TdcDecompThread.SyncSetStatus;
begin
  if StatusFrm <> nil then
  begin
    StatusFrm.StatusText := FStatusText;
    StatusFrm.Status := FStatus;
  end;
end;

function TdcDecompThread.GetPEFileClass(Index: Integer): TPEFile;
begin
  Result := FPEFileClasses[Index];
end;

function TdcDecompThread.GetPEFileClassCount: Integer;
begin
  Result := Length(FPEFileClasses);
end;

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人r级一区二区三区| 色久优优欧美色久优优| 日韩精品一区国产麻豆| 日本不卡不码高清免费观看 | 国产乱子轮精品视频| 91精品黄色片免费大全| 精品在线观看视频| 国产精品色婷婷久久58| 色综合久久99| 三级欧美韩日大片在线看| 欧美va亚洲va香蕉在线| 粉嫩av一区二区三区| 亚洲人123区| 日韩一区二区麻豆国产| 国产精品88av| 亚洲精品欧美专区| 日韩一区二区三区免费观看| 国产激情91久久精品导航| 亚洲精品中文字幕在线观看| 91精品国产综合久久国产大片| 国产尤物一区二区在线| 17c精品麻豆一区二区免费| 欧美精品一卡两卡| 国产·精品毛片| 亚洲第一主播视频| 久久看人人爽人人| 欧美日韩成人高清| 国产精品系列在线播放| 亚洲最快最全在线视频| 精品国产91亚洲一区二区三区婷婷 | 国产91精品久久久久久久网曝门 | 午夜视频一区二区三区| 精品1区2区在线观看| 91浏览器入口在线观看| 琪琪久久久久日韩精品| 国产精品久久久久久久久久久免费看 | 日韩精品影音先锋| 在线观看日韩电影| 国产精一区二区三区| 亚洲第一成人在线| 国产精品久久久久毛片软件| 日韩亚洲欧美在线| 欧美体内she精视频| 成人晚上爱看视频| 久久99国产精品尤物| 夜夜精品视频一区二区| 国产精品乱码人人做人人爱 | 欧美精品一区二区三区蜜臀| 欧美系列日韩一区| caoporen国产精品视频| 国内成人自拍视频| 日韩1区2区日韩1区2区| 亚洲欧美乱综合| 国产精品久久久久9999吃药| 2014亚洲片线观看视频免费| 91麻豆精品国产91| 欧美日韩午夜在线视频| 91日韩在线专区| 成a人片亚洲日本久久| 国产精品中文有码| 国产一区不卡在线| 久久99精品国产.久久久久久 | 欧美大片在线观看一区二区| 欧美色老头old∨ideo| 99re这里只有精品6| 国产成人超碰人人澡人人澡| 国产最新精品精品你懂的| 免费成人在线视频观看| 天堂影院一区二区| 午夜精品在线看| 亚洲成人免费视| 亚洲大片精品永久免费| 亚洲国产日韩一级| 午夜天堂影视香蕉久久| 午夜不卡在线视频| 亚洲国产精品久久人人爱蜜臀| 一二三四区精品视频| 亚洲一区二区三区国产| 亚洲一二三四区| 日韩av成人高清| 麻豆国产精品视频| 韩国女主播一区二区三区| 经典一区二区三区| 岛国精品在线播放| av一区二区不卡| 色一情一乱一乱一91av| 在线视频国内自拍亚洲视频| 欧美午夜精品一区| 宅男噜噜噜66一区二区66| 欧美一区二区久久久| 精品福利一区二区三区| 国产欧美精品一区二区色综合朱莉| 欧美精品一区二区不卡 | 欧美在线免费视屏| 日韩一级精品视频在线观看| 91精品国产综合久久久久| 精品日韩在线观看| 久久一区二区视频| 亚洲图片另类小说| 日韩高清一区二区| 国产福利一区在线| 色av成人天堂桃色av| 欧美日韩高清在线播放| 日韩欧美国产一区在线观看| 26uuu精品一区二区在线观看| 中文一区二区完整视频在线观看| 亚洲欧美色图小说| 日本亚洲天堂网| 风间由美中文字幕在线看视频国产欧美 | 欧美亚洲图片小说| 日韩免费性生活视频播放| 国产欧美日韩另类视频免费观看| 亚洲视频一二区| 欧美bbbbb| caoporn国产一区二区| 欧美二区三区91| 国产精品无人区| 日韩高清不卡在线| 丝瓜av网站精品一区二区| 国产夫妻精品视频| 欧美肥妇free| 亚洲免费观看视频| 国产综合一区二区| 欧美日韩高清一区二区三区| 国产女同互慰高潮91漫画| 亚洲gay无套男同| 成人av免费网站| 精品久久久久久久久久久久久久久 | 亚洲最大色网站| 国产一本一道久久香蕉| 这里只有精品免费| 一区二区三区 在线观看视频| 国内偷窥港台综合视频在线播放| 在线精品视频免费观看| 国产精品婷婷午夜在线观看| 麻豆国产91在线播放| 色婷婷综合五月| 欧美国产精品劲爆| 久久99精品久久久久久动态图| 欧美日韩亚洲不卡| 国产精品美女久久久久高潮| 美女视频黄a大片欧美| 欧美日韩亚洲国产综合| 亚洲伦理在线精品| 成人高清av在线| 国产欧美日韩视频在线观看| 久久精品国产亚洲一区二区三区| 欧美视频在线观看一区二区| 中文字幕一区二区视频| 国产精品香蕉一区二区三区| 欧美成人一区二区三区| 蜜桃精品在线观看| 欧美高清www午色夜在线视频| 亚洲乱码国产乱码精品精可以看| 高清在线不卡av| 欧美激情一区不卡| 国产成人免费视频网站| 精品国产欧美一区二区| 久久国产三级精品| 日韩女优视频免费观看| 日本视频一区二区三区| 宅男噜噜噜66一区二区66| 日韩电影一区二区三区四区| 欧美日韩和欧美的一区二区| 亚洲亚洲人成综合网络| 色天使色偷偷av一区二区| 亚洲码国产岛国毛片在线| 99精品视频中文字幕| 亚洲欧美激情视频在线观看一区二区三区 | 综合中文字幕亚洲| 91网站最新网址| 亚洲卡通动漫在线| 欧美日韩一区二区三区视频| 亚洲成人三级小说| 欧美一区二区三区免费视频| 青青草国产成人99久久| 精品国产污网站| 懂色av一区二区夜夜嗨| 亚洲三级免费电影| 欧美色视频一区| 久久99久久99| 中文成人av在线| 色久综合一二码| 免费观看久久久4p| 国产午夜精品理论片a级大结局 | 九九视频精品免费| 久久婷婷色综合| av成人免费在线| 亚洲6080在线| 久久在线免费观看| 97精品视频在线观看自产线路二| 亚洲影院免费观看| 日韩视频在线一区二区| 国产成人精品午夜视频免费| 亚洲免费资源在线播放| 欧美一级高清大全免费观看| 国产精品一级二级三级| 亚洲精选视频免费看| 欧美成人一区二区三区在线观看 | 在线亚洲欧美专区二区|