ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Problemas na migração do Delphi 7 para 2010 (componentes)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
leocechet
Novato
Novato


Registrado: Terça-Feira, 29 de Março de 2011
Mensagens: 20

MensagemEnviada: Qua Ago 24, 2011 9:14 am    Assunto: Problemas na migração do Delphi 7 para 2010 (componentes) Responder com Citação

Olá pessoal, estou querendo migrarar minha aplicação para o Delphi 2010 para desenvolvê-la em 3 camadas com o novo DataSnap. Mas para isso, preciso migrar todos os componentes primeiro e estou enfrentando um sério problema.

Consigo compilar os componentes, são geradas todas as bpls, quando vou instalá-los na aba build do Delphi exibe "Success" mas ocorre a mensagem um "Acess Violation". Até parece que instala os componentes, a impressão que tenho é que no momento que vai exibí-los na paleta de componentes ocorre o problema.

Tenho os seguintes componentes de terceiros totalmente compatíveis com o Delphi 2010:
1. DevExpress;
2. Jedi;
3. TMS.

Instalei estes três sem problemas.

O único componente que sobrou para migrar são os da Turbo Power, mas nele precisou somente em 2 linhas numa unit fazer TypeCase PAnsiChar(Pchar()) e acabou compilando.

Tratei também nos fontes da aplicação o que era necessário para rodar no Delphi 2010.

Tenho os componentes Fast Report e Crystal Report, mas não estão incluídos neste pacote de componentes que compilei, então acredito que eles não estejam atrabaplhando.

Alguém ja enfrentou este tipo de problema?

Segue o bug que o MadExepct gerou:

Código:
operating system  : Windows 7 Service Pack 1 build 7601
system language   : Portuguese
processors        : 2x Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz
physical memory   : 1351/3037 MB (free/total)
free disk space   : (C:) 106,13 GB
display mode      : 1440x900, 32 bit
process id        : $c48
allocated memory  : 366,64 MB
command line      : "C:\Program Files\Embarcadero\RAD Studio\7.0\bin\bds.exe" -pDelphi
executable        : bds.exe
current module    : madExcept_.bpl
exec. date/time   : 2009-08-19 18:00
version           : 14.0.3513.24210
compiled with     : Delphi 2010
madExcept version : 3.0m
callstack crc     : $2b1aa8c3, $da85d3e5, $e4669a77
exception number  : 2
exception class   : EAccessViolation
exception message : Access violation at address 2B1AA8C3. Read of address 00000008.

main thread ($f48):
2b1aa8c3 +000 ???
5000b312 +042 rtl140.bpl           System          12773 +25 System.InitUnits
5000b382 +046 rtl140.bpl           System          12794  +8 System.@PackageLoad
50035527 +03b rtl140.bpl           SysUtils        20246  +4 SysUtils.InitializePackage
5003567f +083 rtl140.bpl           SysUtils        20296 +18 SysUtils.LoadPackage
208d1c84 +008 coreide140.bpl       PakLoad           143  +0 PakLoad.TPackage.DoLoadPackage
208d1df9 +055 coreide140.bpl       PakLoad           217  +7 PakLoad.TPackage.Load
20829ea9 +061 coreide140.bpl       PakMgr            581  +2 PakMgr.TDesignPackage.Load
2188bf4f +05b delphicoreide140.bpl PasCppPakMgr     2252  +4 PasCppPakMgr.TIDEDesignPackage.Load
5000a41d +01d rtl140.bpl           System          10325  +2 System.@AfterConstruction
2188bd63 +06b delphicoreide140.bpl PasCppPakMgr     2177 +11 PasCppPakMgr.TIDEDesignPackage.DelayLoad
218901e4 +030 delphicoreide140.bpl PakList           913  +3 PakList.TPackageListItem.LoadWait
21890168 +068 delphicoreide140.bpl PakList           891 +15 PakList.TPackageListItem.LoadDesignPackage
2188f1e3 +067 delphicoreide140.bpl PakList           559  +7 PakList.TPackageListItem.SetIsInstalled
2188efbd +0d5 delphicoreide140.bpl PakList           473 +13 PakList.TPackageList.AddPackage
218e8333 +093 delphicoreide140.bpl BasePasProjOpts  2058  +8 BasePasProjOpts.TProjOptsManager.InstallPackage
218ea443 +003 delphicoreide140.bpl BasePasProjOpts  3010  +0 BasePasProjOpts.TProjectOptions.InstallPackage
2190f5ad +191 delphicoreide140.bpl PasMgr          11594 +18 PasMgr.TPascalPackageCodeUpdater.InstallPackage
2189298b +06f delphicoreide140.bpl PkgContainers     178  +8 PkgContainers.TStdPackageProjectContainer.CommandHandler
2070868e +0d6 coreide140.bpl       ContainerIntf     819  +8 ContainerIntf.TIDEProjectManagerMenuObject.Execute
20709e71 +171 coreide140.bpl       ContainerIntf     999 +18 ContainerIntf.TProjectManagerMenuItem.Click
50281787 +013 vcl140.bpl           Menus            3383  +5 Menus.TMenu.DispatchCommand
50282966 +082 vcl140.bpl           Menus            4489  +4 Menus.TPopupList.WndProc
502828b5 +01d vcl140.bpl           Menus            4464  +2 Menus.TPopupList.MainWndProc
50076360 +014 rtl140.bpl           Classes         13014  +8 Classes.StdWndProc
75e0cc6b +00a USER32.dll                                     DispatchMessageW
502c8749 +11d vcl140.bpl           Forms            9784 +30 Forms.TApplication.ProcessMessage
502c878e +00a vcl140.bpl           Forms            9814  +1 Forms.TApplication.HandleMessage
502c8ab9 +0c9 vcl140.bpl           Forms            9951 +26 Forms.TApplication.Run
768d3c43 +010 kernel32.dll                                   BaseThreadInitThunk

thread $fd8:
77886a02 +000a ntdll.dll       NtWaitForMultipleObjects
75be69d6 +0000 KERNELBASE.dll  WaitForMultipleObjectsEx
768cbc89 +0089 kernel32.dll    WaitForMultipleObjectsEx
75e062f3 +7f8a USER32.dll      MsgWaitForMultipleObjectsEx
75e037f2 +001a USER32.dll      MsgWaitForMultipleObjects
768d3c43 +0010 kernel32.dll    BaseThreadInitThunk

thread $b88: <priority>
77886a02 +0a ntdll.dll                         NtWaitForMultipleObjects
75be69d6 +00 KERNELBASE.dll                    WaitForMultipleObjectsEx
768cbc89 +89 kernel32.dll                      WaitForMultipleObjectsEx
5007b84a +56 rtl140.bpl     SyncObjs   339 +14 SyncObjs.THandleObject.WaitFor
5007367e +42 rtl140.bpl     Classes  11018  +8 Classes.ThreadProc
5000b974 +28 rtl140.bpl     System   13579 +33 System.ThreadWrapper
768d3c43 +10 kernel32.dll                      BaseThreadInitThunk

thread $5b4:
77886a02 +0a ntdll.dll     NtWaitForMultipleObjects
768d3c43 +10 kernel32.dll  BaseThreadInitThunk

thread $1cc:
77886a32 +0a ntdll.dll     NtWaitForWorkViaWorkerFactory
768d3c43 +10 kernel32.dll  BaseThreadInitThunk

thread $fc0:
77886a02 +0a ntdll.dll       NtWaitForMultipleObjects
75be69d6 +00 KERNELBASE.dll  WaitForMultipleObjectsEx
768cbc89 +89 kernel32.dll    WaitForMultipleObjectsEx
768cbcf7 +13 kernel32.dll    WaitForMultipleObjects
768d3c43 +10 kernel32.dll    BaseThreadInitThunk

thread $7e0: <priority>
77886a22 +0a ntdll.dll       NtWaitForSingleObject
75be1796 +66 KERNELBASE.dll  WaitForSingleObjectEx
768cbaee +3e kernel32.dll    WaitForSingleObjectEx
768d3c43 +10 kernel32.dll    BaseThreadInitThunk

thread $450:
77886a22 +0a ntdll.dll                                NtWaitForSingleObject
75be1796 +66 KERNELBASE.dll                           WaitForSingleObjectEx
768cbaee +3e kernel32.dll                             WaitForSingleObjectEx
768cba9d +0d kernel32.dll                             WaitForSingleObject
20f288de +26 vclide140.bpl  IDEVirtualTrees  5252  +4 IDEVirtualTrees.TWorkerThread.Execute
5007367e +42 rtl140.bpl     Classes         11018  +8 Classes.ThreadProc
5000b974 +28 rtl140.bpl     System          13579 +33 System.ThreadWrapper
768d3c43 +10 kernel32.dll                             BaseThreadInitThunk

thread $3d4:
778857d2 +0a ntdll.dll                        NtDelayExecution
75be1870 +4f KERNELBASE.dll                   SleepEx
75be1813 +0a KERNELBASE.dll                   Sleep
5007367e +42 rtl140.bpl     Classes 11018  +8 Classes.ThreadProc
5000b974 +28 rtl140.bpl     System  13579 +33 System.ThreadWrapper
768d3c43 +10 kernel32.dll                     BaseThreadInitThunk

thread $ef8: <priority>
75e018d4 +3b USER32.dll    GetMessageA
768d3c43 +10 kernel32.dll  BaseThreadInitThunk

thread $9c4: <suspended> <priority>
778868a2 +00a ntdll.dll                         NtSuspendThread
75c0464d +00c KERNELBASE.dll                    SuspendThread
50074362 +032 rtl140.bpl     Classes  11542  +5 Classes.TThread.Suspend
2085d032 +1ea coreide140.bpl ComInOut  1852 +62 ComInOut.TKibitzingMonitor.Execute
5007367e +042 rtl140.bpl     Classes  11018  +8 Classes.ThreadProc
5000b974 +028 rtl140.bpl     System   13579 +33 System.ThreadWrapper
768d3c43 +010 kernel32.dll                      BaseThreadInitThunk
[/img]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Qua Ago 24, 2011 9:25 am    Assunto: Responder com Citação

PAnsiChar(Pchar())

nao parece ser um typecast aconselhavel
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leocechet
Novato
Novato


Registrado: Terça-Feira, 29 de Março de 2011
Mensagens: 20

MensagemEnviada: Qua Ago 24, 2011 10:32 am    Assunto: Responder com Citação

Bom segui os passos que o colunista Marcelo Jaloto da Active Delphi passou no seu artigo "Migrando para Delphi 2009" publicado na revista Active Delphi nº 61.

Tenho essa revista e seus autores como fontes confiáveis.

Alguém mais?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
C++_killer
Novato
Novato


Registrado: Sexta-Feira, 12 de Setembro de 2008
Mensagens: 65

MensagemEnviada: Qua Ago 24, 2011 4:11 pm    Assunto: Responder com Citação

Pode até não ter relação com o erro, mas concordo com o Gilson com relação ao TypeCast PAnsiChar(PChar()).
Seria interessante que o autor do artigo esclarecesse se essa forma de TypeCast é a única aplicável nesse caso.

Abraços.
_________________
The Club - O maior clube de programadores do Brasil!

Suporte e Consultoria em Delphi

Facebook: The Club - Datasmart
Twitter: @theclubbr
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
leocechet
Novato
Novato


Registrado: Terça-Feira, 29 de Março de 2011
Mensagens: 20

MensagemEnviada: Qua Ago 24, 2011 5:46 pm    Assunto: Responder com Citação

Bom vou remover todas as units que fiz este TypeCast, afinal de contas vale apena tentar, mesmo imaginando que este pode não ser o problema.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leocechet
Novato
Novato


Registrado: Terça-Feira, 29 de Março de 2011
Mensagens: 20

MensagemEnviada: Sex Ago 26, 2011 3:06 pm    Assunto: Responder com Citação

Consegui migrar os componentes para o Delphi 2010.

O problema estava no componente "TurboPower SysTools" http://sourceforge.net/projects/tpsystools/

Baixei a nova versão dele, mas antes de tudo tive que ir adcionando componente por componente no pacote pra saber onde estava o problema.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Dom Ago 28, 2011 1:34 pm    Assunto: Responder com Citação

Bem interessante este componente amigo, vc o utiliza para quê???
Notei que sua documentaçõa e muito grande, algo em torno de 1100 páginas de documentação, um bocado de coisa.


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB