アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

当方の環境はWinXP SP2,VB2005Proです。
現在作成中のアプリで、とあるCOMコンポーネントを使っているのですが、
どうやら そのOCXが自由配布は出来ないようで、依頼元から
「OCXがインストールされている場合のみ、それを使用する機能を
 生かしてほしい」
と言われました。
依頼元曰く「たぶんコンポーネントを参照設定せずにコーディング
しないといけないと思う」との事なのですが、それは可能なのでしょうか?
また、可能であれば、方法(または方針)を教えていただけると有難いです。
(もしかしてOCXと処理を完全に分離してDLL化しないとダメ?)

A 回答 (1件)

参照設定せずにコーディングすることは可能です。


ただし、その OCX が提供するクラスのインスタンスを
Dim a As XXX

Dim b As XXX.YYY
といった形で宣言しているところは全て
Dim a As Object
Dim b As Object
のように As Object で宣言しなければなりません。
また、参照設定しているときにはコンパイルエラーになっていたコーディングミス ( 例えば、メソッド名やプロパティ名の間違い ) が、コンパイル時にはエラーにならず、実行時にエラーになるので注意が必要です。

この回答への補足

補足というか自己レスで申し訳ありません。
結局、OCXをラップしてDLL化する方向で開発を行いまして、何とか想定どおりの
動作を行うことが出来るようになったようです。
恐れ入りますが、ここで この件は打ち切りとさせて頂きます。
お騒がせしました。

(余談)
しかし、CreateDelegateとかEventInfo.AddEventHandlerとかの詳細は
なかなか無いですね…結局英語の掲示板とかを眺める事になってしまいました。

補足日時:2007/05/31 15:44
    • good
    • 0
この回答へのお礼

遅くなりましたが、回答ありがとうございます。

インスタンス生成時に、実際にクラス名を割り当てる感じですね。
ただ、申し訳ありません、言い忘れていたのですが、
コーディング規約として「Option Strict On」の状態でコーディング
しなければいけない事になっているのですが、その場合でも
大丈夫なのでしょうか?
あと、そのクラス名自体を どうやって認識させるのかも気になるところなのですが……
System.Reflection.Assembly.LoadFromってOCXでも大丈夫なんでしょうか?
(Reflection自体が、今のところ調べても混乱状態なのですが(汗))

お礼日時:2007/05/31 09:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!