Programa compilado em versao diferente
Boa tarde
Tenho o seguinte problema
Crie um projeto no delphi XE3
mas como tenho tambem o delphi xe4 instalado versao trial pra testes
acabei abrindo meu projeto sem querer com o delphi xe4 e compilei (BUILD) e depois fui perceber que estava com o delphi xe4 aberto
Agora ao abrir com o delphi xe3 consegui compilar e tudo mas esta dando um erro ao fechar o sistema
será que é em razao de ter sido compilado com o delphi xe4 ? acredito que sim pois nunca deu este erro e o sistema ja esta rodando nos clientes agora preciso fazer uma atualizacao e nao estou conseguindo fazer funcionar o sistema
alguem sabe como resolver esta situacao ?
Tenho o seguinte problema
Crie um projeto no delphi XE3
mas como tenho tambem o delphi xe4 instalado versao trial pra testes
acabei abrindo meu projeto sem querer com o delphi xe4 e compilei (BUILD) e depois fui perceber que estava com o delphi xe4 aberto
Agora ao abrir com o delphi xe3 consegui compilar e tudo mas esta dando um erro ao fechar o sistema
será que é em razao de ter sido compilado com o delphi xe4 ? acredito que sim pois nunca deu este erro e o sistema ja esta rodando nos clientes agora preciso fazer uma atualizacao e nao estou conseguindo fazer funcionar o sistema
alguem sabe como resolver esta situacao ?
Volmir Santos
Curtidas 0
Respostas
Joel Rodrigues
05/07/2013
Pra começar, qual é o erro?
GOSTEI 0
Volmir Santos
05/07/2013
Pra começar, qual é o erro?
Algo muito estranho parece erro de memoria
nao sei oq significa
"Acces violation at 0x00635de3:read of address 0x0000010"
endereco de memoria mas estranho que sempre funcionou
GOSTEI 0
Joel Rodrigues
05/07/2013
Tente depurar e ver exatamente onde ocorre o erro.
GOSTEI 0
Volmir Santos
05/07/2013
Tente depurar e ver exatamente onde ocorre o erro.
Depurando percebi que o erro ocorre na Unit VCL.Forms
destructor TCustomForm.Destroy;
{$IF DEFINED(CLR)}
var
Locked: Boolean;
{$ENDIF}
begin
{$IF DEFINED(CLR)}
Locked := False;
if not (csDestroying in ComponentState) then
begin
Locked := True;
GlobalNameSpace.AcquireWriterLock(MaxInt);
Destroying;
end;
{$ELSE}
Application.RemovePopupForm(Self);
if not (csDestroying in ComponentState) then GlobalNameSpace.BeginWrite;
{$ENDIF}
try
{$IF DEFINED(CLR)}
Screen.FSaveFocusedList.Remove(Self);
RemoveFixupReferences(Self, '');
if Assigned(FOleForm) then
FOleForm.OnDestroy;
if (FormStyle <> fsMDIChild) and not (fsShowing in FFormState) then Hide;
{$ELSE}
if OldCreateOrder then
{$ENDIF}
DoDestroy;
MergeMenu(False);
if HandleAllocated then DestroyWindowHandle;
Screen.RemoveForm(Self);
FreeAndNil(FCanvas);
FreeAndNil(FIcon);
FreeAndNil(FPopupChildren);
FreeAndNil(FRecreateChildren);
FreeAndNil(FGlassFrame);
inherited Destroy; {Aqui ocorre o erro e se der um ok vai para na proxima unit System (Esta comentado tambem)}
finally
{$IF DEFINED(CLR)}
if Locked then GlobalNameSpace.ReleaseWriterLock;
{$ELSE}
GlobalNameSpace.EndWrite;
{$ENDIF}
end;
end;
Unit System
procedure TObject.Free;
begin
if Self <> nil then
{$IFDEF AUTOREFCOUNT}
__ObjRelease;
{$ELSE}
Destroy; {Aqui para com o erro}
{$ENDIF}
end;
pelo que entendi parece que ocorrre ao destrir algum formulario ou variavel sei la array talvez
OBS: estava lembrando agora que criei com o delphi xe4 2 form e uma unit
ai que fui perceber que esta com o delphi errado
GOSTEI 0