Notifications
Clear all

De 32 bits para 64bits

10 Posts
3 Usuários
0 Reactions
10.1 K Visualizações
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

Boa Tarde!

Estou tentando abrir um arquivo que é para sistema OS 32 bits e mesmo lendo os fóruns eu não consigo entender o que exatamente preciso fazer. Notei que muita gente pergunta como se faz e fica meio perdido na solução. Então proponho depois de resolvido postar aqui passo a passo como resolvemos essa questão.

Tenho que alterar esses campos, mão não sei o que alterar e como proceder. Abaixo parte da rotina, a mensagem de erro e o anexo do arquivo.

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(lpDest As Any, lpSource As Any, ByVal cBytes&)

Declare Function CallWindowProc& Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc&, ByVal hWnd&, _
ByVal Msg&, ByVal wParam&, ByVal lparam&)

---------------------------
Microsoft Visual Basic for Applications
---------------------------
Erro de compilação:

O código desse projeto deve ser atualizado para uso em sistemas de 64 bits.
Analise e atualize as instruções Declare e, em seguida, marque-as com o atributo PtrSafe.
---------------------------
OK Help
---------------------------

Grato

 
Postado : 05/07/2013 8:43 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não utilizo o 64 , mas voce ja viu o post: viewtopic.php?f=10&t=7843&hilit=+*safe*

 
Postado : 05/07/2013 9:34 am
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

O que funcionou foi o seguinte colocar "PtrSafe" na declaração conforme abaixo:

Function used to manipulate memory data
Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(lpDest As Any, lpSource As Any, ByVal cBytes&)

' Function used to call the next window proc in the "chain" for the
' subclassed Window
Declare PtrSafe Function CallWindowProc& Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc&, ByVal hWnd&, _
ByVal Msg&, ByVal wParam&, ByVal lparam&)

Agora estou com outros problemas quando falta uma biblioteca onde encontrar...no caso do mesmo arquivo .View = lvwReport ....oq será que é isso?

 
Postado : 05/07/2013 10:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Para rodar é preciso que a biblioteca (referencias) MSCOMCTL.ocx esteja carregada/disponivel, porem não sei se está disponivel no 64 bits (veja em http://social.msdn.microsoft.com/Forums ... ffice-2010)

Pode também testar o descrito em http://social.msdn.microsoft.com/Forums ... -windows-7

 
Postado : 05/07/2013 10:43 am
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

Isso mesmo Reinaldo, não esta disponível para o 64 Bits. A melhor solução é instalar a versão 32Bits... farei isso então.

Obrigado

 
Postado : 05/07/2013 11:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Isso mesmo Reinaldo, não esta disponível para o 64 Bits. A melhor solução é instalar a versão 32Bits... farei isso então.

Obrigado

uele, eu havia postado uns links na sua duvida referente ao 64 bits no forum Formulário, você chegou a ver ?

Quanto as versões, isto é um problema, infelizmente sempre que se alteram as versões temos algum tipo de problema, e neste caso não é só a versão do aplicativo, mas sim a versão da Plataforma do sistema tambem.

Tambem não tenho a vv 64 bits, e o que posso dizer é só o que encontramos nas pesquisa, então de uma olhada no tópico abaixo, acredito que irá resolver.
Componente ListView - não disponível - http://www.tomasvasquez.com.br/forum/vi ... its#p11165 - que gerou este :
Biblioteca MsComCtl – Incompatibilidade com alguns SP´s do O
http://www.tomasvasquez.com.br/forum/vi ... ddU5zvBO2Q

Vale uma obs, é aconselhavel fazer um ponto de Recuperação do Sistema e ter cópia do seu arquivo, pois estamos lidando com Bibliotecas de sistema, e qualquer problema da para acionar a recuperação.

[]s

 
Postado : 05/07/2013 5:31 pm
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

Boa Tarde Mauro,

Vi sim, estou trabalhando nele agora para ver se da certo. Vou pastar aqui o resultado...

 
Postado : 06/07/2013 12:37 pm
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

Boa Tarde Resolvi reabrir este tópico pelo fato de ter mais informações e alguns outros problemas com o registro do arquivo mscomctl.ocx ja baixei duas versões diferentes e as duas geram a mesma mensagem, não tenho duvida que a versão não esta correta. Se alguém puder ajudar agradeço.

Msg de erro ao registra no Prompt

[Window Title]
RegSvr32

[Content]
The module "mscomctl.ocx" may not compatible with the version
of Windows that you're running. Check if the module is compatible
with an x86 (32-bit) or x64 (64-bit) version of regsvr32.exe.

[OK]

 
Postado : 06/07/2013 1:49 pm
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

Depois de muito sofre e pesquisar o problema foi mais fácil resolvido instalando a versão 32 bits..

 
Postado : 06/07/2013 5:35 pm
(@luiz-h)
Posts: 0
New Member
 

(RESOLVIDO)

Cara é muito fácil, toda palavra "Declare" para o 64 bits não vai funcionar no código VBA, você deve substituir a palavra "declare" por "Declare PtrSafe".

A palavra-chave PtrSafe indica que uma instrução Declare é segura para ser executada em versões de 64 bits do Microsoft Office.

Como Era Antes: Declare Function

Como Fica: Declare PtrSafe Function

Espero ter Ajudado quem está precisando

 
Postado : 10/11/2015 5:20 am