Uma DLL do Windows armazenada no Debian, depois baixada de volta para o Windows, não funcionará mais

2

Eu tenho um programa que eu quero distribuir através do meu servidor web rodando Debian.

Então eu enviei meus arquivos - contendo DLLs - para o servidor. Depois que eu fiz o download do aplicativo de atualização, recebi um erro. Então eu tentei baixá-los como eu fiz o upload deles: Via Eclipse IDE. Mas o erro também ocorreu:

Título da caixa de diálogo de erros:

Main.exe - Bad Image

Erro:

Blabla.dll is either not designed to run on Windows or it contains an error […] Error status 0xc0000130.

Então, eu estou querendo saber o que causa a corrupção DLL. Tem a ver com o Eclipse ou o Debian?

EDIT As somas de verificação md5 do original, o arquivo carregado e o arquivo baixado são diferentes.

EDIT2 Parece que este é um problema entre a página de código selecionada no eclipse que é UTF-8. Vou testá-lo com o cp1250 (teste rápido funcionou até agora, mas meu aplicativo falhou) em detalhes amanhã.

EDIT3 Além disso, meu atualizador não funcionava corretamente interpretando os arquivos baixados como arquivos de texto.

    
por Incubbus 03.04.2015 / 22:02

1 resposta

0

Um motivo típico pode ser um upload incompleto. Verifique o tamanho das DLLs enviadas, faça o upload novamente se o tamanho for menor que o esperado.

Outro motivo é a conversão de arquivos entre o Windows e o UNIX, que danifica arquivos binários quando eles são transferidos por engano no modo de texto. Eu não acredito que este seja o seu caso (já que você parece estar usando HTTP e não FTP), mas pode valer a pena checar.

Caso contrário, você terá que comparar sua DLL original compilada pelo Eclipse com a DLL que você baixou do seu servidor da Web e postar as diferenças aqui para análise posterior.

    
por 03.04.2015 / 22:40