2016-11-07 14 views
1

古いコードをコンパイルすると、アプリケーションが実行されなくなります。新しくコンパイルされたexeファイルは "qtintf70.dllがあなたのコンピュータから見つからないため"起動しません。同じコードがありませんqtintf70.dll

奇妙なこと:全く同じコードからコンパイルされた古いexeファイルは正常に動作します。どちらのexeファイルも同じシステム上でテストされましたが、異なるDelphiインストール(両方ともDelphi 7はVirtualBox上で動作します)でコンパイルされました。

グーグル、誰かが「Clxを何とかして引っ張ってきました.ClxアプリケーションにはQTライブラリが必要です。あなたのuses節でQで始まる単位を探してください。しかし、これはまったく同じコードです。私はチェックして何も見つけることができません。

提案?

+1

[条件付きコンパイラ指令](http://docwiki.embarcadero.com/RADStudio/ja/Conditional_compilation_(Delphi))(通常は[バージョン](http://docwiki.embarcadero.com/RADStudio/ja/Compiler_Versions) )が予期しないコードをもたらす可能性があります。 –

+0

私が言ったように:まったく同じコード。私は同じ問題をチェックするだけの古いバックアップもいくつか見つけました。なんらかの理由で、このDelphiインストールでコンパイルすると、説明されている問題が発生します。 – Jarle

+2

検索パスが間違っていると、さまざまなファイルが含まれる可能性があります。 –

答えて

4

D7では、qtintf70.dllを参照する唯一のソースコード単位はQForms.PasとQt.Pasです。

だから、何をする必要がある

  1. 移動するためにどこかにないプロジェクトの検索パス上にこれらの2つのファイルとそれに対応する.DCUファイルのすべてのインスタンスです。 SwiftSearchのようなユーティリティを使用して、すべてを見つけることができます。

  2. プロジェクトを完全にビルドしますか。

ビルドは、コンパイラがこれらのユニットのいずれかまたは他のユニットを見つけることができないという苦情をもってどこかで停止する必要があります。その時点でコンパイルされているソースユニットは、その1つまたは他のものへの参照を含むソースユニットです。

+0

ありがとう!あなたの手続きの後で、私は簡単に管理することができる古いユニットを投げ捨てることになりました。私はまだこれが以前には問題になっていなかったのは困惑していますが、今私はそれを直すことができてうれしいです。ありがとう! – Jarle

+0

@Jarle:PATHや実行可能ファイルのフォルダのどこかにqtintf70.dllのコピーがあるため、以前は問題ありませんでした。実行可能ファイルのコピーが1つしかなく、コンパイルされた実行可能ファイルの別のコピーがDLLが見つからないために失敗して失敗する唯一の理由です。コンパイル中に問題が発生していて、エラーが.pasまたは.dcuファイルが見つからなかった場合は、別の問題ですが、これは特にDLLが見つからないことです。 –

+0

ありがとうございます。これは何千ものユーザーを持つ古いシェアウェアアプリケーションです。決して問題にはなりませんでした。このDLLは確かにアプリケーションと共に配布されていません。以前のexeファイルから検索すると、qtintf70.dllへの参照が見つかりません。プログラムはDLLなしのシステムで実行されます(私はテストしました)。問題の原因となったユニットには、uses節にQDialogsがありました。それをDialogsに変更しました。繰り返しますが、なぜこれが以前には問題になっていないのか分かりません。うまくいけば、これは将来誰かを助けることができる。 – Jarle

関連する問題