1

私はレガシーシステムの機能強化に投げ込まれました。それはVB6+asp(昔ながらのasp)システムでした。したがって、基本的に、システムはデータベースクエリを実行し、結果をActiveXオブジェクト(OCX)にプッシュして、情報がバーコード形式で印刷されるようにします。

一部のロゴが印刷されないようにOCXを変更するように依頼されましたが、既存の印刷目的で元のロゴを維持する必要があります。それで、私は元のものを「名前を付けて保存」し、それをうまく変更することができました。

システムは、OCXをユーザーのPCにインストールする必要があります。ただし、2つの異なる印刷目的で2つの異なるOCXを使用して実行する代わりに、システムは両方の印刷に最新のOCXのみを使用することに気付きました。OCXの名前は異なります。両方が共有するのはクラスIDだけです。

新しく再コンパイルされたOCXのCLASSIDを確認するにはどうすればよいですか?また、それを変更することはできますか?どのように?

4

3 に答える 3

2

CLASSIDは、古いコントロールのリビジョン間で互換性を維持するCOMの方法です。あなたは本当にそれを変えたくありません。同じマシンに2つのバージョンを保持することもお勧めできません。バナーを省略した「新しい」バージョンのコントロールを作成し、コンパイラーに新しいCLSIDをコントロールに割り当てさせて、パスをクリーンに保つことをお勧めします。

于 2012-07-18T03:58:53.093 に答える
2

OCXにはClassIdがありません。ただし、それらの中のコントロールはそうします。

To look at the values of the various GUIDs (there are others involved besides the ClassIds) one easy way is to view the typelib info via the OLE View tool that comes with Visual Studio 6.0, the Win2k Resource Kit, etc.

于 2012-07-18T05:06:57.663 に答える
1

ActiveXコントロール(OCX)を扱ってから長い時間が経ちましたが、このKBが役立つかもしれません:http://msdn.microsoft.com/en-us/library/941zhks9%28v=vs.71%29。 aspx

于 2012-07-18T03:54:53.433 に答える