0

VS 2003 でビルドした古い MFC プロジェクトを VS 2010 に移植したいと考えています。このプロジェクトでは、グリッド用の ActiveX コントロール、つまり Component One の VSFlexGrid7 を使用しています。問題は、このバージョンの ActiveX コントロールが Windows 7 で動作しないことです (これは私が持っているものです)。Windows 7 と互換性のある新しいバージョンのグリッド、つまり VSFlexGrid8 があります。

解決策は、古いコントロールをすべて新しいものに置き換えることです。

私の質問は、プロジェクトの他の部分に触れることなく、コントロールを置き換える手順はどうなるかということです。これを達成するための最も簡単な方法は何ですか? クラスやリソース ID などを変更する必要はありますか?

[解決策: .RC ファイルの CLSID を置き換えます]

4

2 に答える 2

1

ActiveX コントロールは、コントロールを表す GUID を介してリソース ファイルにバインドされます。.rc ファイルの中を見ると、関連付けられた GUID を持つコントロールが表示されます。あなたの場合、新しいバージョンを同じダイアログにドラッグできると仮定して、(リソース エディターを使用して) ダイアログからコントロールを完全に削除するのがおそらく最善です。それが完了したら、コントロールの新しいクラス ラッパーを生成する必要があります。クラスウィザードはそれを処理できるはずです。コントロールを表す新しいクラス ラッパーを取得したら、ソース コード内の以前のラッパー クラスを置き換える必要があります。

于 2013-10-11T20:14:14.240 に答える