DirectShowフィルタをデバッグしています.DELIUS 6 Proを使用してDSPACKコードライブラリで作成しました。私が設定したブレークポイントがBaseClass.pasという名前の特定のユニットでヒットし、トレースを開始すると、実行ポイントはソースコードの奇妙な場所にジャンプします。これは通常、トレースされているソースコードが、Delphiアプリケーションで使用されているパッケージの1つにコンパイルされたソースコードと一致しないことを示します。奇妙なことに、私はDSPACKコードライブラリに属する他のユニットをトレースしているので、この問題は発生していないので、BaseClassユニットだけです。私はランタイムパッケージを使用していません。ブレークポイントがヒットしたときに、ユニットソースコードがコード実行パスと一致しない
私は自分のディスクをスキャンし、プログラムをビルドした最後の日と同じ変更日を持つBaseClass.dcuのコピーを1つだけ見つけました。私は、そのユニットまたはDSPACKに所属する他のユニットのソースを変更していません。私のフィルタはメインアプリケーションの一部であるため、これはDSPACKコンポーネントパッケージ(dpk)を構築するために使用され、またTBCSourceオブジェクトを介してメインアプリケーションから直接参照されるため、BaseClass.pasはデュアルユースの対象となることを示しています私のフィルターはから降ります。注:私はプロジェクトに直接ユニットPASファイルを追加しようとしましたが、何も修正されませんでした。
また、DSPACKパッケージファイルをそれぞれ再オープンして、完全に再ビルドしました。これのどれも助けられませんでした。 BaseClassユニットのコンパイルされたイメージと同期させるために何か他のものがありますか?それとも、別の問題なのでしょうか?そうであれば、それは何ですか?どうすれば修正できますか?
それについて私に思い出させてくれてありがとう。私はあなたの提案を残しておきましたが、残念ながら変更はありませんでした。 –
Delphiの*すべての迷惑メールファイルをきれいにし、すべての行末の文字が真のCRLFペアであることを保証するために、私はずっと前からユーティリティを書いていたことを思い出しました。私はそれを見つけてBaseClass.pasで実行し、エラーは消えました。だからメモ帳のセーブ/リロードは明らかにいくつかの状況では不十分ですが、それは迷惑な文字の問題でした。この悲しいことに数時間を忘れましたが、それは修正されて嬉しいです。 –
:)そういうわけで私は「時々」と言いました。「あなたは修正できる」だけではありません。たとえ少しでも助けてくれてうれしいです。 –