WindowsのDLLがDebianに保存され、その後Windowsにダウンロードされても動作しなくなった


2

私はDebianを実行している私のウェブサーバーを通して配布したいプログラムを持っています。

そのため、DLLを含むファイルをサーバーにアップロードしました。私は彼らが私の更新アプリケーションを介してそれらをダウンロードさせた後、私はエラーを得ました。それで私はそれらをアップロードしたようにそれらをダウンロードしようとしました:Eclipse IDEを介して。しかし、エラーも発生しました:

エラーダイアログのタイトル

Main.exe - 悪いイメージ

エラー:

Blabla.dllは、Windows上で実行するように設計されていないか、または   error […]エラーステータス0xc0000130。

だから私はDLLの破損の原因は何だろうと思っています。 EclipseやDebianと関係がありますか?

編集 オリジナルのmd5チェックサム、アップロードされたファイル、およびダウンロードされたファイルは異なります。

編集2 これはeclipseで選択されたコードページ(UTF-8)間の問題です。明日はcp1250でテストします(クイックテストはこれまで動作しましたが、アプリはクラッシュしました)。

編集3 また、私のアップデータは、ダウンロードしたファイルをテキストファイルとして正しく解釈することができませんでした。


1
非常に奇妙な...私の最初の考えは、Eclipseがファイルに何かをしているということでしょう:それを、そしてそれをダウンロードした後に、そして変化が起こっているところを見なさい。
Just Lucky Really

ファイルシステムはデータに依存しません。唯一の「Xファクタ」は、ほとんどのファイルシステムが拡張属性とリソースフォークを適切に処理しないため、リソースフォークのデータが失敗する必要があるMacプログラムのようなものです。 1つのアイデア:サーバーストレージ用のDLLを圧縮してから、更新されたアーカイブをクライアント側で解凍することはできますか? GZipで圧縮した場合、または単にZip形式で圧縮した場合は、DLLが機能するはずです。
JakeGould

1
MD5はすべて同じです。明日ジップしようと思います。
Incubbus

2
md5が同じであれば、内容は同じです。言い換えれば、ファイルに問題はありません。
psusi

md5ツールが正しく動作しないことがわかりました(なんらかの理由で)。他のmd5ツールは私にチェックサムの違いを示しました。
Incubbus

回答:


0

典型的な理由の1つは、不完全なアップロードです。アップロードされたDLLのサイズを確認し、サイズが予想より小さい場合は再アップロードします。

もう1つの理由は、WindowsとUNIXとの間のファイル変換であり、誤ってテキストモードで転送されるとバイナリファイルが破損します。私はこれがあなたのケースであるとは思わない(あなたはFTPではなくHTTPを使っているように見えるので)、それはチェックする価値があるかもしれません。

それ以外の場合は、Eclipseによってコンパイルされた元のDLLとWebサーバーからダウンロードしたDLLを比較し、さらに分析するためにここに相違点を投稿する必要があります。


2
ファイルがテキストファイルと間違えられているのではないかと思います。おそらくファイルの先頭にあるマジックナンバーがそのように修正され、それがエラーメッセージを引き起こします。
jcoppens

Eclipseでutf-8に設定した中古のファイルエンコーディングのようです。 cp1250に戻して簡単なテストをしました。それがトリックのようです。しかし、私は明日これを詳細に検証します。
Incubbus

1
@Incubbus、エンコーディングはテキストファイル用です... eclipseはバイナリファイルとして扱う必要があります...しかし、エンコーディングが間違っていて結果的にファイルが破損した場合、そのmd5の合計は変わります。
psusi

@Incubbus、あなたが配布しようとしているDLLファイルが、あなたのアプリにそれらを単にコピーするのであれば、最初からうまくいくことを確認しましたか?たぶん問題は(あなたがそれらのDLLを構築するならば)構築プロセス、および/またはアプリケーションとそれらのDLLの間のインターフェース互換性にありますか?
Dmitry Grigoryev

@DmitryGrigoryev、私はアプリケーションの構築に使用したのと同じツールを使用して、自分でDLLを構築しました(VS 2013)。ダウンロードしたファイルを使用しないで、ビルド出力からコピーしたファイルを使用すれば、アプリは正常に動作します。また、VS Debuggerを使用して、またはVSなしで実行しても違いはありません。
Incubbus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.