Fórum Programa compilado em versao diferente #447937

05/07/2013

0

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 ?

Volmir Santos

Volmir Santos

Responder

Posts

05/07/2013

Joel Rodrigues

Pra começar, qual é o erro?
Responder

Gostei + 0

05/07/2013

Volmir Santos

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
Responder

Gostei + 0

05/07/2013

Joel Rodrigues

Tente depurar e ver exatamente onde ocorre o erro.
Responder

Gostei + 0

05/07/2013

Volmir Santos

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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar