32-bit .DLL registra na instalação (Win7 64 bits), mas não regsvr32

3

Eu tenho um aplicativo de 32 bits, que usa um .DLL de 32 bits VC ++ 6 desenvolvido (implantado como Win32UMinDependency) que não posso registrar em uma máquina Windows 7/8 de 64 bits. Junto com a aplicação estão os controles ActiveX vbAccelerator, muitos outros .DLL's de terceiros e .DLLs internos. Eu posso registrar todos os arquivos .DLL no pacote de software, exceto um. Por que isso acontece?

Eu tentei usar regsvr32 de SysWOW64 e system32 , tentei colocar o .DLL na pasta SysWOW64 e tentei registrar, depois o mesmo com a pasta system32 . Eu tentei cancelar o registro. Eu tentei versões antigas, novas versões, versão atual. Eu tentei executar o aplicativo em diferentes modos de compatibilidade. Você nome, eu tentei. Isso simplesmente não funciona.

Esse comportamento é estranho, porque o .DLL, junto com todos os outros, está instalado na máquina com um pacote de instalação .MSI do InstallShield e o aplicativo é executado corretamente em uma instalação limpa. Mas nós nos deparamos com um bug - depois de uma quantidade N de reinstalações - onde eu tive que instalar o VB6 na máquina e percorrer o código para ver o que o .DLL estava tendo problemas. Acontece que era o .DLL que eu não posso registrar, e então eu notei que os controles ActiveX não estavam exibindo seus dados (a grade tinha dados, mas os dados não estavam sendo exibidos).

Depois de criar uma nova conta de usuário - > dando-lhe privilégios de administrador - > logando nele, depois descontrolando o VB6 e tentando instalar o pacote VS6 (VB6, VC ++ 6, MDAC, VS6 Service Pack 6), ele falhou. Então eu tentei instalar o pacote VB6 original novamente, e isso falhou (não me lembro do erro). Depois de ficar frustrado, eu carreguei meu aplicativo e tudo funcionou bem, no entanto, ainda não consegui registrar o .DLL. Voltei para a conta de usuário original e também funcionou lá.

Então, como é possível, que o .DLL possa ter uma chave em regedit e um aplicativo pode funcionar bem, não ser capaz de carregar o .DLL no código, para o Windows falhar na instalação do VS6, de volta para o aplicativo está funcionando novamente?

    
por Kcvin 27.03.2013 / 21:57

0 respostas