存储在 Debian 上的 Windows DLL 下载回 Windows 后将不再起作用

存储在 Debian 上的 Windows DLL 下载回 Windows 后将不再起作用

我有一个程序,想要通过运行 Debian 的网络服务器进行分发。

所以我将包含 DLL 的文件上传到服务器。当我让它们通过我的更新应用程序下载后,我收到一个错误。所以我尝试像上传它们一样下载它们:通过 Eclipse IDE。但错误也发生了:

错误对话框的标题:

Main.exe——坏图像

错误:

Blabla.dll 要么不适合在 Windows 上运行,要么包含错误 [...] 错误状态 0xc0000130。

所以我想知道是什么原因导致 DLL 损坏。这与 Eclipse 还是 Debian 有关?

编辑原始文件、上传文件和下载文件的 md5 校验值不同。

编辑2看来这是 eclipse 中选择的代码页 UTF-8 的问题。明天我会用 cp1250 进行详细测试(快速测试到目前为止有效,但我的应用程序崩溃了)。

编辑3此外,我的更新程序无法正确地将下载的文件解释为文本文件。

答案1

一个典型的原因可能是上传不完整。请检查已上传 DLL 的大小,如果大小小于预期,请重新上传。

另一个原因是 Windows 和 UNIX 之间的文件转换,如果错误地以文本模式传输二进制文件,则会损坏二进制文件。我不认为这是您的情况(因为您似乎使用的是 HTTP 而不是 FTP),但可能值得检查一下。

否则,您必须将 Eclipse 编译的原始 DLL 与从 Web 服务器下载的 DLL 进行比较,并在此处发布差异以供进一步分析。

相关内容