情報詳細Q: HALCONのバージョンアップをしたいのですが、どのような対応を行うことが一般的なのでしょうか。また注意すべき点はどのようなものになりますか? A: 最低限、HALCON関係のdll・libの参照先を変更する必要があります。また、HALCONはメジャーバージョン間のバイナリ互換性は謳っておらず、バージョンアップ時にソースファイルはそのままでプロジェクトの参照先を変更しただけではアプリケーションは動作しない可能性があります。注意点として下記が挙げられます。 1.オペレータの削除 バージョンの更新とともにオペレータは追加されるだけでなく、既存のオペレータの削除が行われる場合があります。HALCON13に更新された際に削除されたものが多くあります。こちらは添付PDFを参照ください。それ以外のバージョンでも、何バージョンかはレガシーとしてマークされ、おおむね2年程度で削除対応が行われるオペレータがあります。こうしたオペレータは、hdevファイル上では存在しないオペレータとして構文エラー、C++/C#などではコンパイルエラーとなります。 2.オペレータの変更 たとえばmedian_imageのフィルタ形状を指定するMaskType 引数は、四角形を指定するときの値は 'rectangle' でしたが現在は 'square' です。即座に過去の引数の設定が使えなくなるわけではなく、ある程度の期間は下位互換のためにパラメータが維持されますが、利用できなくなるケースもあります。この変更はコンパイルエラーではなく実行時エラーとして表出します。 3. 内部処理の変更 hdevファイルであれば上述の注意点はございますが、ほとんどのケースにおいて旧バージョンで作った処理内容をそのまま動作いただけます。ただ、オペレータの改善・修正により、マッチングやサブピクセルでの演算内容が変わっている場合があり、最終的な結果が変わることが多く見られます。HALCON18.11になってからhdev上の記述も変更が必要な部分がございますので、そちらについては添付の[HALCON18.11更新時留意事項_v2.0.pdf]を参照ください。 4.エクスポートコードの変更 hdev上の記述はそこまで大きく変わらないものの、定義ファイルの内容がかなり更新されるため、エクスポートした際のプログラミングコードは大きく内容が異なる場合があります。Visual Studioのみで直接C++やC#などのコードを更新することは困難です。 まとめ 以上より、バージョンアップの際は下記の手順で多く行われます。 バージョンアップしたHDevelopでプログラムの処理結果をチェックし大きな差異がないことを確認結果に問題が無いようであればエクスポートVisual Studioにて参照するHALCONのDLLファイルのパスを変更 (フォルダ名にHALCONのバージョンがそのままとなっていないか確認)エクスポートしたファイルHALCONに関する部分の記述を入れ替え[.Net]を使っており別のバージョンのHWindowControlが存在する場合は内部の定義内容が違うことからエラーの原因となるため、フォームからHWindowControlを削除し、参照を修正したのち、再配置添付ファイルHALCON更新時の注意.zipタイトルHALCONバージョンアップ時の留意事項URL 名000009098公開状況公開済み検証状況公開済み