2011-09-26 68 views
1

任何人都可以告訴我,爲什麼我不斷收到以下錯誤?Delphi 7 IDE堆棧溢出錯誤

背景:

該項目有320嵌入表單。

項目搜索路徑有205個文件夾,長度超過11,000個字符。

如果我只說出1個嵌入式窗體單元,那麼它編譯時不會出錯。

圖像#1 - 德爾福IDE

enter image description here

圖像#2 - 從DCC32.EXE

enter image description here

下面是我用我的嵌入單元表格

unit EmbeddedForm; 

interface 

{$INCLUDE '..\INCLUDE\BUILD.INC'} 

uses 
    Windows, Controls, Messages, Forms; 

type 
    TEmbeddedForm = class(TForm) 
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
    procedure FormClose(Sender: TObject; var Action: TCloseAction); 
    private 
    { Private declarations } 
    procedure StopFlicker(var theMessage: TWMEraseBkgnd); message WM_ERASEBKGND; 
    protected 
    { Protected declarations } 
    procedure CreateParams(var Params: TCreateParams); override; 
    public 
    { Public declarations } 
    procedure InitializeForm(); virtual; abstract; 
    procedure FinalizeForm(); virtual; abstract; 
    end; 

implementation 

{$R *.DFM} 
procedure TEmbeddedForm.StopFlicker(var theMessage: TWMEraseBkgnd); 
begin 
    theMessage.Result := 1; 
end; 

procedure TEmbeddedForm.CreateParams(var Params: TCreateParams); 
const 
    ParamStyle = WS_VISIBLE or WS_POPUP or WS_OVERLAPPED or WS_OVERLAPPEDWINDOW; 
begin 
    inherited CreateParams(Params); 
    Params.ExStyle := (Params.ExStyle and (not WS_EX_WINDOWEDGE) 
    and (not WS_EX_STATICEDGE) and (not WS_EX_DLGMODALFRAME) and (not WS_EX_CLIENTEDGE)); 
    Params.Style := (Params.Style and (not WS_CAPTION) and (not DS_MODALFRAME) 
    and (not WS_DLGFRAME) and (not WS_THICKFRAME)); 
    Params.Style := Params.Style and not ParamStyle; 
end; 

procedure TEmbeddedForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
begin 
    CanClose := False; 
end; 

procedure TEmbeddedForm.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
    Action := caNone; 
end; 

end. 
+0

你可以通過刪除任何形式來抑制問題? –

+0

是的,它不關心我刪除了什麼形式。 – eyeClaxton

+0

您可以嘗試使用PE編輯器來增加IDE或dcc32的堆棧大小。但先備份吧! Editbin應該這樣做。 –

回答

4

您可以嘗試使用PE編輯器來增加IDE或dcc32的堆棧大小。但先備份吧! Editbin應該這樣做。

0

試圖改變這些值:

項目 - >選項 - >連接器 - >內存大小

最小堆棧大小爲十六進制值

最大堆棧大小爲十六進制值