C# usar objecto COM (32 bits) em sistemas 64bits

Comecei recentemente a trabalhar com um Windows 64 bits, hoje tentei abrir e executar um projeto de C# para fazer umas alterações, tudo abriu corretamente nenhum problema aparente, mesmo depois de fazer build não era gerado nenhum erro nem sequer um único Warning.

Quando tento fazer debug recebo um erro bastante estranho, numa parte do código que acede a uma DLL que serve de ponte entre a minha aplicação e outra aplicação de código fechado, esta dll é fornecida pelo fabricante (que por acaso é a Microsoft), depois de experimentar mil e um coisas e nada fazer com que o projeto corresse coloquei a versão que resultava do debug, numa máquina com XP 32bits e o projeto correu lindamente.

Depois de alguns testes a solução para o problema foi mudar a configuração da “Solution Plataform” para x86 por defeito é “Any CPU”, já agora no Visual Studio Express não aparece por defeito activa esta opção é necessário ir a Tools ““> Options ““> Projects And Solutions e marcar “Show Advanced Build Configurations “.

E é este o workaround para usar objectos COM de 32 bits em sistemas de 64 bits, referi em cima C# mas deve funcionar nas outras linguagens da .net FW.

Problema Resolvido

O problema que relatei aqui foi resolvido.

Não encontrei a causa por isso posso continuar á mercê dos hackaros, mas pelo menos para já os sites estão limpos (este blogue está alojado noutro provider e não foi afectado).

O processo de limpeza foi simples mas demorado, comecei por fazer download de todos os ficheiros que tinha na conta afectada, pagar numa instalação “virgem” do WordPress e copiar para cima dos ficheiros já existentes, de cada instalação que tenho do WordPress. Mesmo assim continuava a haver ficheiros infectados. Fiz uma pequena aplicação em C# que pesquisa recursivamente todos os ficheiros pelo código injectado e o apaga copiando para outro directorio os ficheiros “limpos”.

Se alguém padecer do mesmo mal, que esteja á vontade para me solicitar o código que usei para percorrer todos os ficheiros em todos os directórios e sub-directórios e encontrar os ficheiros afectados. Não disponibilizo aqui a aplicação porque está um bocado tosca, para a usar convém ler o código e ajustar á infecção que os ficheiros tiverem.